diff options
Diffstat (limited to 'src/tools/msvc/VSObjectFactory.pm')
-rw-r--r-- | src/tools/msvc/VSObjectFactory.pm | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/src/tools/msvc/VSObjectFactory.pm b/src/tools/msvc/VSObjectFactory.pm index 61e83f52a09..a865604a5a1 100644 --- a/src/tools/msvc/VSObjectFactory.pm +++ b/src/tools/msvc/VSObjectFactory.pm @@ -61,6 +61,16 @@ sub CreateSolution { return new VS2019Solution(@_); } + + # The version of nmake bundled in Visual Studio 2022 is greater + # than 14.30 and less than 14.40. And the version number is + # actually 17.00. + elsif ( + ($visualStudioVersion ge '14.30' && $visualStudioVersion lt '14.40') + || $visualStudioVersion eq '17.00') + { + return new VS2022Solution(@_); + } else { croak @@ -105,6 +115,16 @@ sub CreateProject { return new VC2019Project(@_); } + + # The version of nmake bundled in Visual Studio 2022 is greater + # than 14.30 and less than 14.40. And the version number is + # actually 17.00. + elsif ( + ($visualStudioVersion ge '14.30' && $visualStudioVersion lt '14.40') + || $visualStudioVersion eq '17.00') + { + return new VC2022Project(@_); + } else { croak @@ -134,7 +154,7 @@ sub DetermineVisualStudioVersion else { # fake version - return '16.00'; + return '17.00'; } } @@ -143,13 +163,13 @@ sub _GetVisualStudioVersion my ($major, $minor) = @_; # The major visual studio that is supported has nmake - # version <= 14.30, so stick with it as the latest version + # version <= 14.40, so stick with it as the latest version # if bumping on something even newer. - if ($major >= 14 && $minor >= 30) + if ($major >= 14 && $minor >= 40) { carp "The determined version of Visual Studio is newer than the latest supported version. Returning the latest supported version instead."; - return '14.20'; + return '14.30'; } elsif ($major < 12) { |