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.
REL_10_STABLE
Andrew Dunstan 7 years ago
parent 5c3d47287f
commit 165f4eecfe
  1. 13
      src/tools/msvc/MSBuildProject.pm

@ -38,6 +38,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

Loading…
Cancel
Save