mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-17 07:11:52 +08:00
IRSL: Detect versioned Windows Universal CRT directories
Windows SDK version 10.0.17763.0 now places the uCRT libraries in a versioned directory. Fixes: #18603
This commit is contained in:
@@ -302,7 +302,15 @@ if(MSVC)
|
|||||||
get_filename_component(windows_kits_dir
|
get_filename_component(windows_kits_dir
|
||||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot10]" ABSOLUTE)
|
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot10]" ABSOLUTE)
|
||||||
set(programfilesx86 "ProgramFiles(x86)")
|
set(programfilesx86 "ProgramFiles(x86)")
|
||||||
find_path(WINDOWS_KITS_DIR NAMES Redist/ucrt/DLLs/${CMAKE_MSVC_ARCH}/ucrtbase.dll
|
if(";${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION};$ENV{UCRTVersion};$ENV{WindowsSDKVersion};" MATCHES [=[;(10\.[0-9.]+)[;\]]=])
|
||||||
|
set(__ucrt_version "${CMAKE_MATCH_1}/")
|
||||||
|
else()
|
||||||
|
set(__ucrt_version "")
|
||||||
|
endif()
|
||||||
|
find_path(WINDOWS_KITS_DIR
|
||||||
|
NAMES
|
||||||
|
Redist/${__ucrt_version}ucrt/DLLs/${CMAKE_MSVC_ARCH}/ucrtbase.dll
|
||||||
|
Redist/ucrt/DLLs/${CMAKE_MSVC_ARCH}/ucrtbase.dll
|
||||||
PATHS
|
PATHS
|
||||||
$ENV{CMAKE_WINDOWS_KITS_10_DIR}
|
$ENV{CMAKE_WINDOWS_KITS_10_DIR}
|
||||||
"${windows_kits_dir}"
|
"${windows_kits_dir}"
|
||||||
@@ -313,11 +321,19 @@ if(MSVC)
|
|||||||
|
|
||||||
# Glob the list of UCRT DLLs.
|
# Glob the list of UCRT DLLs.
|
||||||
if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
|
if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
|
||||||
file(GLOB __ucrt_dlls "${WINDOWS_KITS_DIR}/Redist/ucrt/DLLs/${CMAKE_MSVC_ARCH}/*.dll")
|
if(EXISTS "${WINDOWS_KITS_DIR}/Redist/${__ucrt_version}ucrt/DLLs/${CMAKE_MSVC_ARCH}/ucrtbase.dll")
|
||||||
|
file(GLOB __ucrt_dlls "${WINDOWS_KITS_DIR}/Redist/${__ucrt_version}ucrt/DLLs/${CMAKE_MSVC_ARCH}/*.dll")
|
||||||
|
else()
|
||||||
|
file(GLOB __ucrt_dlls "${WINDOWS_KITS_DIR}/Redist/ucrt/DLLs/${CMAKE_MSVC_ARCH}/*.dll")
|
||||||
|
endif()
|
||||||
list(APPEND __install__libs ${__ucrt_dlls})
|
list(APPEND __install__libs ${__ucrt_dlls})
|
||||||
endif()
|
endif()
|
||||||
if(CMAKE_INSTALL_DEBUG_LIBRARIES)
|
if(CMAKE_INSTALL_DEBUG_LIBRARIES)
|
||||||
file(GLOB __ucrt_dlls "${WINDOWS_KITS_DIR}/bin/${CMAKE_MSVC_ARCH}/ucrt/*.dll")
|
if(EXISTS "${WINDOWS_KITS_DIR}/bin/${__ucrt_version}${CMAKE_MSVC_ARCH}/ucrt/ucrtbased.dll")
|
||||||
|
file(GLOB __ucrt_dlls "${WINDOWS_KITS_DIR}/bin/${__ucrt_version}${CMAKE_MSVC_ARCH}/ucrt/*.dll")
|
||||||
|
else()
|
||||||
|
file(GLOB __ucrt_dlls "${WINDOWS_KITS_DIR}/bin/${CMAKE_MSVC_ARCH}/ucrt/*.dll")
|
||||||
|
endif()
|
||||||
list(APPEND __install__libs ${__ucrt_dlls})
|
list(APPEND __install__libs ${__ucrt_dlls})
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
Reference in New Issue
Block a user