mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 05:11:15 -06:00
VS: Add an environment variable for the Windows 10 kits directory
Define a `CMAKE_WINDOWS_KITS_10_DIR` environment variable to allow users to tell CMake about a custom Windows 10 SDK directory. We choose to make this an environment variable rather than a CMake variable or cache entry because: * Using a custom directory also requires custom external MSBuild configuration. Therefore users are already configuring a custom environment. * The custom directory must be set consistently in all parts of a build including nested projects. An environment variable avoids requiring users to thread the setting into nested builds. Fixes: #16743
This commit is contained in:
@@ -10,3 +10,8 @@ version. Otherwise CMake computes a default version based on the Windows
|
|||||||
SDK versions available. The chosen Windows target version number is provided
|
SDK versions available. The chosen Windows target version number is provided
|
||||||
in ``CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION``. If no Windows 10 SDK
|
in ``CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION``. If no Windows 10 SDK
|
||||||
is available this value will be empty.
|
is available this value will be empty.
|
||||||
|
|
||||||
|
One may set a ``CMAKE_WINDOWS_KITS_10_DIR`` *environment variable*
|
||||||
|
to an absolute path to tell CMake to look for Windows 10 SDKs in
|
||||||
|
a custom location. The specified directory is expected to contain
|
||||||
|
``Include/10.0.*`` directories.
|
||||||
|
|||||||
@@ -31,6 +31,11 @@
|
|||||||
# app-local deployment (e.g. to Windows XP). This is meaningful
|
# app-local deployment (e.g. to Windows XP). This is meaningful
|
||||||
# only with MSVC from Visual Studio 2015 or higher.
|
# only with MSVC from Visual Studio 2015 or higher.
|
||||||
#
|
#
|
||||||
|
# One may set a ``CMAKE_WINDOWS_KITS_10_DIR`` *environment variable*
|
||||||
|
# to an absolute path to tell CMake to look for Windows 10 SDKs in
|
||||||
|
# a custom location. The specified directory is expected to contain
|
||||||
|
# ``Redist/ucrt/DLLs/*`` directories.
|
||||||
|
#
|
||||||
# ``CMAKE_INSTALL_MFC_LIBRARIES``
|
# ``CMAKE_INSTALL_MFC_LIBRARIES``
|
||||||
# Set to TRUE to install the MSVC MFC runtime libraries.
|
# Set to TRUE to install the MSVC MFC runtime libraries.
|
||||||
#
|
#
|
||||||
@@ -258,6 +263,7 @@ if(MSVC)
|
|||||||
set(programfilesx86 "ProgramFiles(x86)")
|
set(programfilesx86 "ProgramFiles(x86)")
|
||||||
find_path(WINDOWS_KITS_DIR NAMES Redist/ucrt/DLLs/${CMAKE_MSVC_ARCH}/ucrtbase.dll
|
find_path(WINDOWS_KITS_DIR NAMES Redist/ucrt/DLLs/${CMAKE_MSVC_ARCH}/ucrtbase.dll
|
||||||
PATHS
|
PATHS
|
||||||
|
$ENV{CMAKE_WINDOWS_KITS_10_DIR}
|
||||||
"${windows_kits_dir}"
|
"${windows_kits_dir}"
|
||||||
"$ENV{ProgramFiles}/Windows Kits/10"
|
"$ENV{ProgramFiles}/Windows Kits/10"
|
||||||
"$ENV{${programfilesx86}}/Windows Kits/10"
|
"$ENV{${programfilesx86}}/Windows Kits/10"
|
||||||
|
|||||||
@@ -219,6 +219,14 @@ std::string cmGlobalVisualStudio14Generator::GetWindows10SDKVersion()
|
|||||||
#if defined(_WIN32) && !defined(__CYGWIN__)
|
#if defined(_WIN32) && !defined(__CYGWIN__)
|
||||||
std::vector<std::string> win10Roots;
|
std::vector<std::string> win10Roots;
|
||||||
|
|
||||||
|
{
|
||||||
|
std::string win10Root;
|
||||||
|
if (cmSystemTools::GetEnv("CMAKE_WINDOWS_KITS_10_DIR", win10Root)) {
|
||||||
|
cmSystemTools::ConvertToUnixSlashes(win10Root);
|
||||||
|
win10Roots.push_back(win10Root);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
// This logic is taken from the vcvarsqueryregistry.bat file from VS2015
|
// This logic is taken from the vcvarsqueryregistry.bat file from VS2015
|
||||||
// Try HKLM and then HKCU.
|
// Try HKLM and then HKCU.
|
||||||
|
|||||||
Reference in New Issue
Block a user