From 0a29a311612eca698886d271e4137224a5a4d65a Mon Sep 17 00:00:00 2001 From: Roger Leigh Date: Tue, 25 Apr 2017 10:32:42 +0100 Subject: VS2017: Verify Windows 8.1 SDK before using it The detection logic added by commit v3.8.0-rc2~14^2 (VS2017: If Win 8.1 SDK is not available, use Win 10 SDK, 2017-02-20) was incomplete. It is possible for the Win 8.1 SDK registry entry to exist, and even the directory, but the header files to not actually be installed. Teach `cmGlobalVisualStudio15Generator::IsWin81SDKInstalled` to verify that the `windows.h` header actually exists in the SDK directory. We do this in `cmGlobalVisualStudio14Generator::GetWindows10SDKVersion` for the Windows 10 SDK already. Fixes: #16811 --- Source/cmGlobalVisualStudio15Generator.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/cmGlobalVisualStudio15Generator.cxx b/Source/cmGlobalVisualStudio15Generator.cxx index 2312bc0..da2bf8c 100644 --- a/Source/cmGlobalVisualStudio15Generator.cxx +++ b/Source/cmGlobalVisualStudio15Generator.cxx @@ -164,7 +164,7 @@ bool cmGlobalVisualStudio15Generator::IsWin81SDKInstalled() const "HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\" "Windows Kits\\Installed Roots;KitsRoot81", win81Root, cmSystemTools::KeyWOW64_32)) { - return true; + return cmSystemTools::FileExists(win81Root + "/um/windows.h", true); } return false; } -- cgit v0.12