mirror of
https://github.com/reactos/CMake.git
synced 2025-02-01 17:42:41 +00:00
Merge topic 'vs-win-sdk'
4dab8e69bd VS: Tell VS 2019 to use Windows SDK 8.1 explicitly when needed 35bf9ded3b VS: Factor out a method to set the Windows SDK version internally Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2989
This commit is contained in:
commit
fcdd6efb72
@ -158,14 +158,22 @@ bool cmGlobalVisualStudio14Generator::SelectWindows10SDK(cmMakefile* mf,
|
||||
bool required)
|
||||
{
|
||||
// Find the default version of the Windows 10 SDK.
|
||||
this->WindowsTargetPlatformVersion = this->GetWindows10SDKVersion();
|
||||
if (required && this->WindowsTargetPlatformVersion.empty()) {
|
||||
std::string const version = this->GetWindows10SDKVersion();
|
||||
if (required && version.empty()) {
|
||||
std::ostringstream e;
|
||||
e << "Could not find an appropriate version of the Windows 10 SDK"
|
||||
<< " installed on this machine";
|
||||
mf->IssueMessage(MessageType::FATAL_ERROR, e.str());
|
||||
return false;
|
||||
}
|
||||
this->SetWindowsTargetPlatformVersion(version, mf);
|
||||
return true;
|
||||
}
|
||||
|
||||
void cmGlobalVisualStudio14Generator::SetWindowsTargetPlatformVersion(
|
||||
std::string const& version, cmMakefile* mf)
|
||||
{
|
||||
this->WindowsTargetPlatformVersion = version;
|
||||
if (!cmSystemTools::VersionCompareEqual(this->WindowsTargetPlatformVersion,
|
||||
this->SystemVersion)) {
|
||||
std::ostringstream e;
|
||||
@ -175,7 +183,6 @@ bool cmGlobalVisualStudio14Generator::SelectWindows10SDK(cmMakefile* mf,
|
||||
}
|
||||
mf->AddDefinition("CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION",
|
||||
this->WindowsTargetPlatformVersion.c_str());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool cmGlobalVisualStudio14Generator::SelectWindowsStoreToolset(
|
||||
|
@ -40,6 +40,9 @@ protected:
|
||||
|
||||
virtual bool SelectWindows10SDK(cmMakefile* mf, bool required);
|
||||
|
||||
void SetWindowsTargetPlatformVersion(std::string const& version,
|
||||
cmMakefile* mf);
|
||||
|
||||
// Used to verify that the Desktop toolset for the current generator is
|
||||
// installed on the machine.
|
||||
bool IsWindowsDesktopToolsetInstalled() const override;
|
||||
|
@ -401,6 +401,12 @@ bool cmGlobalVisualStudioVersionedGenerator::InitializeWindows(cmMakefile* mf)
|
||||
// If the Win 8.1 SDK is installed then we can select a SDK matching
|
||||
// the target Windows version.
|
||||
if (this->IsWin81SDKInstalled()) {
|
||||
// VS 2019 does not default to 8.1 so specify it explicitly when needed.
|
||||
if (this->Version >= cmGlobalVisualStudioGenerator::VS16 &&
|
||||
!cmSystemTools::VersionCompareGreater(this->SystemVersion, "8.1")) {
|
||||
this->SetWindowsTargetPlatformVersion("8.1", mf);
|
||||
return true;
|
||||
}
|
||||
return cmGlobalVisualStudio14Generator::InitializeWindows(mf);
|
||||
}
|
||||
// Otherwise we must choose a Win 10 SDK even if we are not targeting
|
||||
|
Loading…
x
Reference in New Issue
Block a user