Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

projects: drop MSVC project files for recent versions #13311

Closed
wants to merge 5 commits into from

Conversation

bagder
Copy link
Member

@bagder bagder commented Apr 8, 2024

We encourage users to generate visual studio project files using CMake.

We keep project files in git for ancient visual studio versions that cmake cannot generate files for, but we no longer ship the project files in the tarballs.

(alternative take to #13296)

We encourage users to generate visual studio project files using CMake.

We keep project files in git for ancient visual studio versions that
cmake cannot generate files for, but we no longer ship the project files
in the tarballs.
@bagder bagder added build Windows Windows-specific dist labels Apr 8, 2024
@bagder
Copy link
Member Author

bagder commented Apr 8, 2024

@MarcelRaad and @jay thoughts?

@bagder
Copy link
Member Author

bagder commented Apr 8, 2024

Everything curl is now correspondingly mentioning the "generate with cmake" way: https://everything.curl.dev/build/windows.html

@jay
Copy link
Member

jay commented Apr 9, 2024

The documentation needs to be updated. Also I would include the generated VC10-12 with the tarball if the tarball can still be reproducible. I forgot we stopped doing that.

jay added 2 commits April 9, 2024 12:19
.. also add --help and /? as aliases for -help and /? options
- explain user must run generate.bat to generate legacy versions

- explain user must use cmake to generate later versions
@jay
Copy link
Member

jay commented Apr 9, 2024

I would include the generated VC10-12 with the tarball

nm. I removed the dead code for VC14 and changed the README to explain that generate.bat must be run to generate the legacy versions of Visual Studio project files and cmake must be run to generate later versions of Visual Studio project files.

vszakats
vszakats previously approved these changes Apr 9, 2024
@vszakats vszakats dismissed their stale review April 9, 2024 18:18

'VisualStudioSolution, VS2017, Debug, x86, Schannel, Build-only' AppVeyor job needs update

@bagder
Copy link
Member Author

bagder commented Apr 9, 2024

Ah yes, appveyor uses generate.bat for the VS2017 build so we either need to keep support for that, or switch to generating the project files with cmake there...

@vszakats
Copy link
Member

vszakats commented Apr 9, 2024

Ah yes, appveyor uses generate.bat for the VS2017 build so we either need to keep support for that, or switch to generating the project files with cmake there...

Strong vote for the latter. It would also serve as an example for how to do that.

@MarcelRaad
Copy link
Member

MarcelRaad commented Apr 9, 2024

The only reason I used Visual Studio 2017 for that build in #3941 is that it was the latest version for which Visual Studio solution files existed back then. Not sure if switching it to CMake would make much sense as we already have a lot of CMake builds. I'd rather switch it to VS 2013, which is also the oldest version supported by Appveyor. Otherwise, we have no Visual Studio solution build at all in CI, right?

Or did I misunderstand something and the plan was to turn it into something special?

@vszakats
Copy link
Member

vszakats commented Apr 9, 2024

An option to keep this job useful is moving it to VC 12 (= Visual Studio 2013) (from 14.10 aka Visual Studio 2017). This compiler version isn't tested at the moment and generate.bat continues to support it. It's available in the "Visual Studio 2015" AppVeyor image: https://www.appveyor.com/docs/windows-images-software/#visual-studio-2013

Here's a translation table for the confusing MSVC version numbering schemes:

Compiler                                _MSC_VER value
--------                                --------------
C Compiler version 6.0                  600
C/C++ compiler version 7.0              700
Visual C++, Windows, version 1.0        800
Visual C++, 32-bit, version 1.0         800
Visual C++, Windows, version 2.0        900
Visual C++, 32-bit, version 2.x         900
Visual C++, 32-bit, version 4.0         1000
Visual C++, 32-bit, version 5.0         1100
Visual C++, 32-bit, version 6.0         1200
Visual Studio .NET (2002), version 7.0  1300
Visual Studio .NET 2003, version 7.1    1310
Visual Studio 2005, version 8.0         1400
Visual Studio 2008, version 9.0         1500
Visual Studio 2010, version 10.0        1600
Visual Studio 2012, version 11.0        1700
Visual Studio 2013, version 12.0        1800
Visual Studio 2015, version 14.0        1900
Visual Studio 2017, version 14.1*       1910-1919
Visual Studio 2019, version 14.2*       1920-1929
Visual Studio 2022, version 14.3*       1930-19??

@vszakats
Copy link
Member

vszakats commented Apr 9, 2024

Tested the VC12 approach here, with success:
https://ci.appveyor.com/project/curlorg/curl/builds/49581291/job/427yrxk4qmquqvv2

Patch:

--- a/appveyor.yml
+++ b/appveyor.yml
@@ -230,12 +230,12 @@ environment:
       TESTING: 'OFF'
       ENABLE_UNICODE: 'yes'
     # generated VisualStudioSolution-based builds
-    - job_name: 'VisualStudioSolution, VS2017, Debug, x86, Schannel, Build-only'
-      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
+    - job_name: 'VisualStudioSolution, VS2013, Debug, x86, Schannel, Build-only'
+      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
       BUILD_SYSTEM: VisualStudioSolution
       PRJ_CFG: 'DLL Debug - DLL Windows SSPI - DLL WinIDN'
       TESTING: 'OFF'
-      VC_VERSION: VC14.10
+      VC_VERSION: VC12
     # autotools-based builds (NOT mingw cross-compiling, but msys2 native)
     - job_name: 'autotools, msys2, Debug, x86_64, no Proxy, no SSL'
       APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'

@github-actions github-actions bot added the CI Continuous Integration label Apr 9, 2024
@bagder bagder closed this in 6389ba8 Apr 10, 2024
@bagder bagder deleted the bagder/drop-new-msvc-proj branch April 10, 2024 05:57
@bagder
Copy link
Member Author

bagder commented Apr 10, 2024

Thanks a lot @jay and @vszakats !

@bagder bagder mentioned this pull request Apr 11, 2024
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build CI Continuous Integration dist Windows Windows-specific
Development

Successfully merging this pull request may close these issues.

None yet

4 participants