mirror of
https://github.com/postgres/postgres.git
synced 2025-07-05 07:21:24 +03:00
Add support for Visual Studio 2019 in build scripts
This fixes at the same time a set of inconsistencies in the documentation and the scripts related to the versions of Windows SDK supported. Author: Haribabu Kommi Reviewed-by: Andrew Dunstan, Juan José Santamaría Flecha, Michael Paquier Discussion: https://postgr.es/m/CAJrrPGcfqXhfPyMrny9apoDU7M1t59dzVAvoJ9AeAh5BJi+UzA@mail.gmail.com
This commit is contained in:
@ -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";
|
||||
}
|
||||
|
Reference in New Issue
Block a user