|
|
@@ -215,6 +215,10 @@ bool cmGlobalVisualStudio14Generator::IsWindowsStoreToolsetInstalled() const
|
|
|
std::string cmGlobalVisualStudio14Generator::GetWindows10SDKMaxVersion() const
|
|
|
{
|
|
|
// The last Windows 10 SDK version that VS 2015 can target is 10.0.14393.0.
|
|
|
+ //
|
|
|
+ // "VS 2015 Users: The Windows 10 SDK (15063, 16299, 17134, 17763) is
|
|
|
+ // officially only supported for VS 2017." From:
|
|
|
+ // https://blogs.msdn.microsoft.com/chuckw/2018/10/02/windows-10-october-2018-update/
|
|
|
return "10.0.14393.0";
|
|
|
}
|
|
|
|
|
|
@@ -287,28 +291,28 @@ std::string cmGlobalVisualStudio14Generator::GetWindows10SDKVersion()
|
|
|
// only the UCRT MSIs were installed for them.
|
|
|
cmEraseIf(sdks, NoWindowsH());
|
|
|
|
|
|
- if (!sdks.empty()) {
|
|
|
- // Only use the filename, which will be the SDK version.
|
|
|
- for (std::string& i : sdks) {
|
|
|
- i = cmSystemTools::GetFilenameName(i);
|
|
|
- }
|
|
|
+ // Only use the filename, which will be the SDK version.
|
|
|
+ for (std::string& i : sdks) {
|
|
|
+ i = cmSystemTools::GetFilenameName(i);
|
|
|
+ }
|
|
|
|
|
|
- // Sort the results to make sure we select the most recent one.
|
|
|
- std::sort(sdks.begin(), sdks.end(), cmSystemTools::VersionCompareGreater);
|
|
|
+ // Skip SDKs that cannot be used with our toolset.
|
|
|
+ std::string maxVersion = this->GetWindows10SDKMaxVersion();
|
|
|
+ if (!maxVersion.empty()) {
|
|
|
+ cmEraseIf(sdks, WindowsSDKTooRecent(maxVersion));
|
|
|
+ }
|
|
|
|
|
|
- // Skip SDKs that cannot be used with our toolset.
|
|
|
- std::string maxVersion = this->GetWindows10SDKMaxVersion();
|
|
|
- if (!maxVersion.empty()) {
|
|
|
- cmEraseIf(sdks, WindowsSDKTooRecent(maxVersion));
|
|
|
- }
|
|
|
+ // Sort the results to make sure we select the most recent one.
|
|
|
+ std::sort(sdks.begin(), sdks.end(), cmSystemTools::VersionCompareGreater);
|
|
|
|
|
|
- // Look for a SDK exactly matching the requested target version.
|
|
|
- for (std::string const& i : sdks) {
|
|
|
- if (cmSystemTools::VersionCompareEqual(i, this->SystemVersion)) {
|
|
|
- return i;
|
|
|
- }
|
|
|
+ // Look for a SDK exactly matching the requested target version.
|
|
|
+ for (std::string const& i : sdks) {
|
|
|
+ if (cmSystemTools::VersionCompareEqual(i, this->SystemVersion)) {
|
|
|
+ return i;
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
+ if (!sdks.empty()) {
|
|
|
// Use the latest Windows 10 SDK since the exact version is not available.
|
|
|
return sdks.at(0);
|
|
|
}
|