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
This commit is contained in:
Brad King 2016-12-07 10:38:18 -05:00
parent db3499df5d
commit 27431de162
1 changed files with 10 additions and 1 deletions

View File

@ -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;
}