|
|
|
|
@ -39,16 +39,29 @@ sub CreateSolution |
|
|
|
|
return new VS2015Solution(@_); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# visual 2017 hasn't changed the nmake version to 15, so adjust the check to support it. |
|
|
|
|
elsif (($visualStudioVersion ge '14.10') |
|
|
|
|
or ($visualStudioVersion eq '15.00')) |
|
|
|
|
# The version of nmake bundled in Visual Studio 2017 is greater |
|
|
|
|
# than 14.10 and less than 14.20. And the version number is |
|
|
|
|
# actually 15.00. |
|
|
|
|
elsif ( |
|
|
|
|
($visualStudioVersion ge '14.10' && $visualStudioVersion lt '14.20') |
|
|
|
|
|| $visualStudioVersion eq '15.00') |
|
|
|
|
{ |
|
|
|
|
return new VS2017Solution(@_); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# The version of nmake bundled in Visual Studio 2019 is greater |
|
|
|
|
# than 14.20 and less than 14.30. And the version number is |
|
|
|
|
# actually 16.00. |
|
|
|
|
elsif ( |
|
|
|
|
($visualStudioVersion ge '14.20' && $visualStudioVersion lt '14.30') |
|
|
|
|
|| $visualStudioVersion eq '16.00') |
|
|
|
|
{ |
|
|
|
|
return new VS2019Solution(@_); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
croak $visualStudioVersion; |
|
|
|
|
croak "The requested Visual Studio version is not supported."; |
|
|
|
|
croak |
|
|
|
|
"The requested Visual Studio version $visualStudioVersion is not supported."; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -70,16 +83,29 @@ sub CreateProject |
|
|
|
|
return new VC2015Project(@_); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# visual 2017 hasn't changed the nmake version to 15, so adjust the check to support it. |
|
|
|
|
elsif (($visualStudioVersion ge '14.10') |
|
|
|
|
or ($visualStudioVersion eq '15.00')) |
|
|
|
|
# The version of nmake bundled in Visual Studio 2017 is greater |
|
|
|
|
# than 14.10 and less than 14.20. And the version number is |
|
|
|
|
# actually 15.00. |
|
|
|
|
elsif ( |
|
|
|
|
($visualStudioVersion ge '14.10' && $visualStudioVersion lt '14.20') |
|
|
|
|
|| $visualStudioVersion eq '15.00') |
|
|
|
|
{ |
|
|
|
|
return new VC2017Project(@_); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# The version of nmake bundled in Visual Studio 2019 is greater |
|
|
|
|
# than 14.20 and less than 14.30. And the version number is |
|
|
|
|
# actually 16.00. |
|
|
|
|
elsif ( |
|
|
|
|
($visualStudioVersion ge '14.20' && $visualStudioVersion lt '14.30') |
|
|
|
|
|| $visualStudioVersion eq '16.00') |
|
|
|
|
{ |
|
|
|
|
return new VC2019Project(@_); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
croak $visualStudioVersion; |
|
|
|
|
croak "The requested Visual Studio version is not supported."; |
|
|
|
|
croak |
|
|
|
|
"The requested Visual Studio version $visualStudioVersion is not supported."; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -106,17 +132,19 @@ sub _GetVisualStudioVersion |
|
|
|
|
{ |
|
|
|
|
my ($major, $minor) = @_; |
|
|
|
|
|
|
|
|
|
# visual 2017 hasn't changed the nmake version to 15, so still using the older version for comparison. |
|
|
|
|
if ($major > 14) |
|
|
|
|
# The major visual studio that is supported has nmake |
|
|
|
|
# version <= 14.30, so stick with it as the latest version |
|
|
|
|
# if bumping on something even newer. |
|
|
|
|
if ($major >= 14 && $minor >= 30) |
|
|
|
|
{ |
|
|
|
|
carp |
|
|
|
|
"The determined version of Visual Studio is newer than the latest supported version. Returning the latest supported version instead."; |
|
|
|
|
return '14.00'; |
|
|
|
|
return '14.20'; |
|
|
|
|
} |
|
|
|
|
elsif ($major < 6) |
|
|
|
|
elsif ($major < 12) |
|
|
|
|
{ |
|
|
|
|
croak |
|
|
|
|
"Unable to determine Visual Studio version: Visual Studio versions before 6.0 aren't supported."; |
|
|
|
|
"Unable to determine Visual Studio version: Visual Studio versions before 12.0 aren't supported."; |
|
|
|
|
} |
|
|
|
|
return "$major.$minor"; |
|
|
|
|
} |
|
|
|
|
|