The following issue has been SUBMITTED. ====================================================================== https://cmake.org/Bug/view.php?id=16073 ====================================================================== Reported By: Lewoco Assigned To: ====================================================================== Project: CMake Issue ID: 16073 Category: Modules Reproducibility: always Severity: minor Priority: normal Status: new ====================================================================== Date Submitted: 2016-04-21 03:38 EDT Last Modified: 2016-04-21 03:38 EDT ====================================================================== Summary: InstallRequiredSystemLibraries needs updating for MSVS2015 Description: Many system DLL's required by MSVS2015 are not identified by InstallRequiredSystemLibraries.
Steps to Reproduce: - add_executable a simple hello world - Use InstallRequiredSystemLibraries to install the required libraries - Build an installer using WiX (or whatever) - Install it on Windows 7 (no updates) BUG: executable cannot be run because of missing DLL's. Note: - Updates might have helped but I didn't try it. - Probably also affects Windows 8/8.1. - Might not affect Windows 10? (see link) https://blogs.msdn.microsoft.com/vcblog/2015/03/03/introducing-the-universal-crt/ Additional Information: Right now I'm using the following code to select the additional required libraries. Please integrate something similar into InstallRequiredSystemLibraries: # InstallRequiredSystemLibraries does not properly support MSVS 14 yet, so do it manually. unset(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_DEBUG) unset(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_RELEASE) if(DEFINED MSVC_VERSION AND NOT MSVC_VERSION LESS 1900) # Internal: Architecture-appropriate library directory names. if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "ARM") set(_winsdk_arch8 arm) # what the WDK for Win8+ calls this architecture else() if(CMAKE_SIZEOF_VOID_P MATCHES "8") set(_winsdk_arch8 x64) # what the WDK for Win8+ calls this architecture else() set(_winsdk_arch8 x86) # what the WDK for Win8+ calls this architecture endif() endif() # The CRT is distributed with MSVS. get_filename_component(MSVS_DIR "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\14.0;ShellFolder]" ABSOLUTE) # As of MSVC 19 the CRT depends on the 'univeral' CRT (which is part of Windows development kit 10 and above). # http://blogs.msdn.com/b/vcblog/archive/2015/03/03/introducing-the-universal-crt.aspx get_filename_component(WINDOWS_KIT_DIR "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot10]" ABSOLUTE) file(GLOB CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_DEBUG "${MSVS_DIR}/VC/redist/debug_nonredist/${_winsdk_arch8}/Microsoft.VC140.DebugCRT/*.dll" "${WINDOWS_KIT_DIR}/Redist/ucrt/DLLs/${_winsdk_arch8}/api-ms-win-*.dll" "${WINDOWS_KIT_DIR}/bin/${_winsdk_arch8}/ucrt/*.dll" ) file(GLOB CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_RELEASE "${MSVS_DIR}/VC/redist/${_winsdk_arch8}/Microsoft.VC140.CRT/*.dll" "${WINDOWS_KIT_DIR}/Redist/ucrt/DLLs/${_winsdk_arch8}/*.dll" ) endif() ====================================================================== Issue History Date Modified Username Field Change ====================================================================== 2016-04-21 03:38 Lewoco New Issue ====================================================================== -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers