Skip to content

Commit

Permalink
Update MSVC compiler version detection
Browse files Browse the repository at this point in the history
As of Visual Studio 2015, the major version of the compiler (`cl.exe`)
is 19, and the minor version increases by steps of 10.  However, the
latest Visual Studio 2022 release has the version `19.40`, so that
Visual Studio version is not properly detected.  This is not a big deal
regarding the reported compiler version (`php -v` etc.), but the
filenames of the builds would no longer match the expectations (instead
of `vs17` there is now `19.40.33811` or another build number).  This
implies that the files would have to be renamed manually to be properly
handled by windows.php.net (or that code would have to be adapted).

Therefore we update the version detection to detect all versions < 1950
as Visual Studio 2022, assuming that "For major releases, the minor
version increases by 10."[1] still holds in the future.

[1] <https://learn.microsoft.com/en-us/cpp/overview/compiler-versions?view=msvc-170#visual-studio-2017-and-later>
  • Loading branch information
cmb69 committed Jul 4, 2024
1 parent de35468 commit 78b10b5
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion win32/build/confutils.js
Original file line number Diff line number Diff line change
Expand Up @@ -3104,7 +3104,7 @@ function toolset_get_compiler_name(short)

version = probe_binary(PHP_CL).substr(0, 5).replace('.', '');

if (version >= 1940) {
if (version >= 1950) {
return name;
} else if (version >= 1930) {
name = short ? "VS17" : "Visual C++ 2022";
Expand Down

0 comments on commit 78b10b5

Please sign in to comment.