]> granicus.if.org Git - postgresql/commitdiff
Honor MSVC WindowsSDKVersion if set
authorAndrew Dunstan <andrew@dunslane.net>
Thu, 25 Jul 2019 15:24:23 +0000 (11:24 -0400)
committerAndrew Dunstan <andrew@dunslane.net>
Thu, 25 Jul 2019 15:40:34 +0000 (11:40 -0400)
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.

src/tools/msvc/MSBuildProject.pm

index 158763d9b2e32252c2667c86d7ffb59c912e6074..eb7d3bd667c50d7dfd93c1523f3eec3b950ee9c8 100644 (file)
@@ -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