Honor MSVC WindowsSDKVersion if set

Add a line to the project file setting the target SDK. Otherwise, in for
example VS2017, if the default but optional 8.1 SDK is not installed the
build will fail.

Patch from Peifeng Qiu, slightly edited by me.

Discussion: https://postgr.es/m/CABmtVJhw1boP_bd4=b3Qv5YnqEdL696NtHFi2ruiyQ6mFHkeQQ@mail.gmail.com

Backpatch to all live branches.
This commit is contained in:
Andrew Dunstan 2019-07-25 11:24:23 -04:00
parent f5a4ab23e4
commit 20e99cdddb
1 changed files with 13 additions and 0 deletions

View File

@ -40,6 +40,19 @@ EOF
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>$self->{guid}</ProjectGuid>
EOF
# Check whether WindowsSDKVersion env variable is present.
# Add WindowsTargetPlatformVersion node if so.
my $sdkVersion = $ENV{'WindowsSDKVersion'};
if (defined($sdkVersion))
{
# remove trailing backslash if necessary.
$sdkVersion, =~ s/\\$//;
print $f <<EOF
<WindowsTargetPlatformVersion>$sdkVersion</WindowsTargetPlatformVersion>
EOF
}
print $f <<EOF;
</PropertyGroup>
<Import Project="\$(VCTargetsPath)\\Microsoft.Cpp.Default.props" />
EOF