Merge topic 'InstallRequiredSystemLibraries-Windows-UCRT'

6b0b0660 InstallRequiredSystemLibraries: Optionally install Windows UCRT (#16073)
bbf8c03b InstallRequiredSystemLibraries: Fix ENV{ProgramFiles(x86)} reference
This commit is contained in:
Brad King 2016-05-13 09:38:29 -04:00 committed by CMake Topic Stage
commit a0e00c4b3f
4 changed files with 32 additions and 1 deletions

View File

@ -0,0 +1,6 @@
InstallRequiredSystemLibraries-Windows-UCRT
-------------------------------------------
* The :module:`InstallRequiredSystemLibraries` module learned a new
``CMAKE_INSTALL_UCRT_LIBRARIES`` option to enable app-local deployment
of the Windows Universal CRT libraries with Visual Studio 2015.

View File

@ -23,6 +23,11 @@
# Set to TRUE to install only the debug runtime libraries with MSVC
# tools even if the release runtime libraries are also available.
#
# ``CMAKE_INSTALL_UCRT_LIBRARIES``
# Set to TRUE to install the Windows Universal CRT libraries for
# app-local deployment. This is meaningful only with MSVC from
# Visual Studio 2015 or higher.
#
# ``CMAKE_INSTALL_MFC_LIBRARIES``
# Set to TRUE to install the MSVC MFC runtime libraries.
#
@ -171,12 +176,12 @@ if(MSVC)
# Find the runtime library redistribution directory.
get_filename_component(msvc_install_dir
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\${v}.0;InstallDir]" ABSOLUTE)
set(programfilesx86 "ProgramFiles(x86)")
find_path(MSVC${v}_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.CRT
PATHS
"${msvc_install_dir}/../../VC/redist"
"${base_dir}/VC/redist"
"$ENV{ProgramFiles}/Microsoft Visual Studio ${v}.0/VC/redist"
set(programfilesx86 "ProgramFiles(x86)")
"$ENV{${programfilesx86}}/Microsoft Visual Studio ${v}.0/VC/redist"
)
mark_as_advanced(MSVC${v}_REDIST_DIR)
@ -207,6 +212,24 @@ if(MSVC)
list(APPEND __install__libs "${MSVC${v}_CRT_DIR}/msvcr${v}0d.dll")
endif()
endif()
if(CMAKE_INSTALL_UCRT_LIBRARIES AND NOT v VERSION_LESS 14)
# Find the Windows Universal CRT redistribution directory.
get_filename_component(windows_kits_dir
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot10]" ABSOLUTE)
set(programfilesx86 "ProgramFiles(x86)")
find_path(WINDOWS_KITS_REDIST_DIR NAMES ucrt/DLLs/${CMAKE_MSVC_ARCH}/ucrtbase.dll
PATHS
"${windows_kits_dir}/Redist"
"$ENV{ProgramFiles}/Windows Kits/10/Redist"
"$ENV{${programfilesx86}}/Windows Kits/10/Redist"
)
mark_as_advanced(WINDOWS_KITS_REDIST_DIR)
# Glob the list of UCRT DLLs.
file(GLOB __ucrt_dlls "${WINDOWS_KITS_REDIST_DIR}/ucrt/DLLs/${CMAKE_MSVC_ARCH}/*.dll")
list(APPEND __install__libs ${__ucrt_dlls})
endif()
endmacro()
if(MSVC10)

View File

@ -364,6 +364,7 @@ endif()
set(CPACK_PACKAGE_EXECUTABLES "SimpleInstall" "Simple Install")
set(CMAKE_INSTALL_MFC_LIBRARIES 1)
set(CMAKE_INSTALL_DEBUG_LIBRARIES 1)
set(CMAKE_INSTALL_UCRT_LIBRARIES 1)
include(InstallRequiredSystemLibraries)
if(CTEST_TEST_CPACK)

View File

@ -364,6 +364,7 @@ endif()
set(CPACK_PACKAGE_EXECUTABLES "SimpleInstall" "Simple Install")
set(CMAKE_INSTALL_MFC_LIBRARIES 1)
set(CMAKE_INSTALL_DEBUG_LIBRARIES 1)
set(CMAKE_INSTALL_UCRT_LIBRARIES 1)
include(InstallRequiredSystemLibraries)
if(CTEST_TEST_CPACK)