فهرست منبع

VS: Fix standalone Windows7.1SDK toolset selection

Since commit v3.7.0-rc1~142^2~1 (VS: Explicitly default to v100 toolset
in Visual Studio 2010, 2016-07-21) we prefer to always set a platform
toolset explicitly so that `CMAKE_VS_PLATFORM_TOOLSET` can be reported.
However, the `v100` default for the VS 10 generator is not appropriate
for all environments.  We fixed support for VS 2010 Express Edition in
commit v3.7.0-rc1~142^2 (VS: Do not default to missing v100 64-bit
toolset on VS 2010 Express, 2016-09-09).

Fix support for the standalone Windows7.1SDK toolset environment by
recognizing the `PlatformToolset` environment variable that it sets to
`Windows7.1SDK` and using this as our default toolset instead.

Closes: #16483
Brad King 9 سال پیش
والد
کامیت
27431de162
1فایلهای تغییر یافته به همراه10 افزوده شده و 1 حذف شده
  1. 10 1
      Source/cmGlobalVisualStudio10Generator.cxx

+ 10 - 1
Source/cmGlobalVisualStudio10Generator.cxx

@@ -93,7 +93,16 @@ cmGlobalVisualStudio10Generator::cmGlobalVisualStudio10Generator(
   this->SystemIsWindowsPhone = false;
   this->SystemIsWindowsStore = false;
   this->MSBuildCommandInitialized = false;
-  this->DefaultPlatformToolset = "v100";
+  {
+    std::string envPlatformToolset;
+    if (cmSystemTools::GetEnv("PlatformToolset", envPlatformToolset) &&
+        envPlatformToolset == "Windows7.1SDK") {
+      // We are running from a Windows7.1SDK command prompt.
+      this->DefaultPlatformToolset = "Windows7.1SDK";
+    } else {
+      this->DefaultPlatformToolset = "v100";
+    }
+  }
   this->Version = VS10;
 }