diff options
author | Brad King <brad.king@kitware.com> | 2016-01-21 16:44:17 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2016-01-21 16:50:28 (GMT) |
commit | d7e863c1c1f4962f589e53b42a87a66cf5ab00b7 (patch) | |
tree | 4404f3d39697ff8dcc701d52c7ad876e58c4a56f | |
parent | a57caf7eecdfe61e4ac5f63b145fc9269610f3f0 (diff) | |
download | CMake-d7e863c1c1f4962f589e53b42a87a66cf5ab00b7.zip CMake-d7e863c1c1f4962f589e53b42a87a66cf5ab00b7.tar.gz CMake-d7e863c1c1f4962f589e53b42a87a66cf5ab00b7.tar.bz2 |
VS: Do not fail on Windows 10 with VS 2015 if no SDK is available (#15929)
Since commit v3.4.0-rc1~5^2~1 (VS: Add support for selecting the Windows
10 SDK, 2015-09-30) the VS 2015 generator requires a Windows 10 SDK to
be available when CMAKE_SYSTEM_VERSION specifies Windows 10 (e.g. when
building on a Windows 10 host). Howewver, it is possible to install VS
2015 without any Windows 10 SDK. Instead of failing with an error
message about the lack of a Windows 10 SDK, simply tolerate this case
and use the default Windows 8.1 SDK. Since building for Windows Store
still requires the SDK, retain the diagnostic in that case.
-rw-r--r-- | Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst | 3 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudio14Generator.cxx | 9 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudio14Generator.h | 2 |
3 files changed, 8 insertions, 6 deletions
diff --git a/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst b/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst index 6392849..e0be3a4 100644 --- a/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst +++ b/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst @@ -8,4 +8,5 @@ specification of a target Windows version to select a corresponding SDK. The :variable:`CMAKE_SYSTEM_VERSION` variable may be set to specify a version. Otherwise CMake computes a default version based on the Windows SDK versions available. The chosen Windows target version number is provided -in ``CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION``. +in ``CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION``. If no Windows 10 SDK +is available this value will be empty. diff --git a/Source/cmGlobalVisualStudio14Generator.cxx b/Source/cmGlobalVisualStudio14Generator.cxx index 83499f1..2f266cd 100644 --- a/Source/cmGlobalVisualStudio14Generator.cxx +++ b/Source/cmGlobalVisualStudio14Generator.cxx @@ -115,7 +115,7 @@ bool cmGlobalVisualStudio14Generator::InitializeWindows(cmMakefile* mf) { if (cmHasLiteralPrefix(this->SystemVersion, "10.0")) { - return this->SelectWindows10SDK(mf); + return this->SelectWindows10SDK(mf, false); } return true; } @@ -143,17 +143,18 @@ bool cmGlobalVisualStudio14Generator::InitializeWindowsStore(cmMakefile* mf) } if (cmHasLiteralPrefix(this->SystemVersion, "10.0")) { - return this->SelectWindows10SDK(mf); + return this->SelectWindows10SDK(mf, true); } return true; } //---------------------------------------------------------------------------- -bool cmGlobalVisualStudio14Generator::SelectWindows10SDK(cmMakefile* mf) +bool cmGlobalVisualStudio14Generator::SelectWindows10SDK(cmMakefile* mf, + bool required) { // Find the default version of the Windows 10 SDK. this->WindowsTargetPlatformVersion = this->GetWindows10SDKVersion(); - if (this->WindowsTargetPlatformVersion.empty()) + if (required && this->WindowsTargetPlatformVersion.empty()) { std::ostringstream e; e << "Could not find an appropriate version of the Windows 10 SDK" diff --git a/Source/cmGlobalVisualStudio14Generator.h b/Source/cmGlobalVisualStudio14Generator.h index 76c15d9..57e6284 100644 --- a/Source/cmGlobalVisualStudio14Generator.h +++ b/Source/cmGlobalVisualStudio14Generator.h @@ -39,7 +39,7 @@ protected: bool IsWindowsStoreToolsetInstalled() const; virtual const char* GetIDEVersion() { return "14.0"; } - virtual bool SelectWindows10SDK(cmMakefile* mf); + virtual bool SelectWindows10SDK(cmMakefile* mf, bool required); // Used to verify that the Desktop toolset for the current generator is // installed on the machine. |