aboutsummaryrefslogtreecommitdiff
path: root/src/tools/msvc/VSObjectFactory.pm
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/msvc/VSObjectFactory.pm')
-rw-r--r--src/tools/msvc/VSObjectFactory.pm28
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)
{