mirror of
https://github.com/reactos/CMake.git
synced 2024-11-25 12:40:06 +00:00
e4e6ea0714
The Spanish language MFC localization dll changed names from VS 9 to 10. Use the correct file name ending with "esn.dll" instead of the now non-existent one ending with "esp.dll" Also, add the existing, but missing from our rules until now, Russian language module. Alphabetize the list while we're at it for easier reading in the future. We may want to consider adding some file(GLOB code here to minimize the risk of missing files added in future versions of VS.
403 lines
15 KiB
CMake
403 lines
15 KiB
CMake
# By including this file, all library files listed in the variable
|
|
# CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS will be installed with
|
|
# install(PROGRAMS ...) into bin for WIN32 and lib
|
|
# for non-WIN32. If CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP is set to TRUE
|
|
# before including this file, then the INSTALL command is not called.
|
|
# The user can use the variable CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS to use a
|
|
# custom install command and install them however they want.
|
|
# If it is the MSVC compiler, then the microsoft run
|
|
# time libraries will be found and automatically added to the
|
|
# CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS, and installed.
|
|
# If CMAKE_INSTALL_DEBUG_LIBRARIES is set and it is the MSVC
|
|
# compiler, then the debug libraries are installed when available.
|
|
# If CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY is set then only the debug
|
|
# libraries are installed when both debug and release are available.
|
|
# If CMAKE_INSTALL_MFC_LIBRARIES is set then the MFC run time
|
|
# libraries are installed as well as the CRT run time libraries.
|
|
# If CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION is set then the libraries are
|
|
# installed to that directory rather than the default.
|
|
# If CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS is NOT set, then this file
|
|
# warns about required files that do not exist. You can set this variable to
|
|
# ON before including this file to avoid the warning. For example, the Visual
|
|
# Studio Express editions do not include the redistributable files, so if you
|
|
# include this file on a machine with only VS Express installed, you'll get
|
|
# the warning.
|
|
|
|
#=============================================================================
|
|
# Copyright 2006-2009 Kitware, Inc.
|
|
#
|
|
# Distributed under the OSI-approved BSD License (the "License");
|
|
# see accompanying file Copyright.txt for details.
|
|
#
|
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
# See the License for more information.
|
|
#=============================================================================
|
|
# (To distribute this file outside of CMake, substitute the full
|
|
# License text for the above reference.)
|
|
|
|
if(MSVC)
|
|
file(TO_CMAKE_PATH "$ENV{SYSTEMROOT}" SYSTEMROOT)
|
|
|
|
if(CMAKE_CL_64)
|
|
if(MSVC_VERSION GREATER 1599)
|
|
# VS 10 and later:
|
|
set(CMAKE_MSVC_ARCH x64)
|
|
else()
|
|
# VS 9 and earlier:
|
|
set(CMAKE_MSVC_ARCH amd64)
|
|
endif()
|
|
else()
|
|
set(CMAKE_MSVC_ARCH x86)
|
|
endif()
|
|
|
|
get_filename_component(devenv_dir "${CMAKE_MAKE_PROGRAM}" PATH)
|
|
get_filename_component(base_dir "${devenv_dir}/../.." ABSOLUTE)
|
|
|
|
if(MSVC70)
|
|
set(__install__libs
|
|
"${SYSTEMROOT}/system32/msvcp70.dll"
|
|
"${SYSTEMROOT}/system32/msvcr70.dll"
|
|
)
|
|
endif()
|
|
|
|
if(MSVC71)
|
|
set(__install__libs
|
|
"${SYSTEMROOT}/system32/msvcp71.dll"
|
|
"${SYSTEMROOT}/system32/msvcr71.dll"
|
|
)
|
|
endif()
|
|
|
|
if(MSVC80)
|
|
# Find the runtime library redistribution directory.
|
|
get_filename_component(msvc_install_dir
|
|
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0;InstallDir]" ABSOLUTE)
|
|
find_path(MSVC80_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest
|
|
PATHS
|
|
"${msvc_install_dir}/../../VC/redist"
|
|
"${base_dir}/VC/redist"
|
|
)
|
|
mark_as_advanced(MSVC80_REDIST_DIR)
|
|
set(MSVC80_CRT_DIR "${MSVC80_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC80.CRT")
|
|
|
|
# Install the manifest that allows DLLs to be loaded from the
|
|
# directory containing the executable.
|
|
if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
|
|
set(__install__libs
|
|
"${MSVC80_CRT_DIR}/Microsoft.VC80.CRT.manifest"
|
|
"${MSVC80_CRT_DIR}/msvcm80.dll"
|
|
"${MSVC80_CRT_DIR}/msvcp80.dll"
|
|
"${MSVC80_CRT_DIR}/msvcr80.dll"
|
|
)
|
|
endif()
|
|
|
|
if(CMAKE_INSTALL_DEBUG_LIBRARIES)
|
|
set(MSVC80_CRT_DIR
|
|
"${MSVC80_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC80.DebugCRT")
|
|
set(__install__libs ${__install__libs}
|
|
"${MSVC80_CRT_DIR}/Microsoft.VC80.DebugCRT.manifest"
|
|
"${MSVC80_CRT_DIR}/msvcm80d.dll"
|
|
"${MSVC80_CRT_DIR}/msvcp80d.dll"
|
|
"${MSVC80_CRT_DIR}/msvcr80d.dll"
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
if(MSVC90)
|
|
# Find the runtime library redistribution directory.
|
|
get_filename_component(msvc_install_dir
|
|
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\9.0;InstallDir]" ABSOLUTE)
|
|
get_filename_component(msvc_express_install_dir
|
|
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VCExpress\\9.0;InstallDir]" ABSOLUTE)
|
|
find_path(MSVC90_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest
|
|
PATHS
|
|
"${msvc_install_dir}/../../VC/redist"
|
|
"${msvc_express_install_dir}/../../VC/redist"
|
|
"${base_dir}/VC/redist"
|
|
)
|
|
mark_as_advanced(MSVC90_REDIST_DIR)
|
|
set(MSVC90_CRT_DIR "${MSVC90_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.CRT")
|
|
|
|
# Install the manifest that allows DLLs to be loaded from the
|
|
# directory containing the executable.
|
|
if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
|
|
set(__install__libs
|
|
"${MSVC90_CRT_DIR}/Microsoft.VC90.CRT.manifest"
|
|
"${MSVC90_CRT_DIR}/msvcm90.dll"
|
|
"${MSVC90_CRT_DIR}/msvcp90.dll"
|
|
"${MSVC90_CRT_DIR}/msvcr90.dll"
|
|
)
|
|
endif()
|
|
|
|
if(CMAKE_INSTALL_DEBUG_LIBRARIES)
|
|
set(MSVC90_CRT_DIR
|
|
"${MSVC90_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC90.DebugCRT")
|
|
set(__install__libs ${__install__libs}
|
|
"${MSVC90_CRT_DIR}/Microsoft.VC90.DebugCRT.manifest"
|
|
"${MSVC90_CRT_DIR}/msvcm90d.dll"
|
|
"${MSVC90_CRT_DIR}/msvcp90d.dll"
|
|
"${MSVC90_CRT_DIR}/msvcr90d.dll"
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
macro(MSVCRT_FILES_FOR_VERSION version)
|
|
set(v "${version}")
|
|
|
|
# Find the runtime library redistribution directory.
|
|
get_filename_component(msvc_install_dir
|
|
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\${v}.0;InstallDir]" ABSOLUTE)
|
|
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"
|
|
"$ENV{ProgramFiles(x86)}/Microsoft Visual Studio ${v}.0/VC/redist"
|
|
)
|
|
mark_as_advanced(MSVC${v}_REDIST_DIR)
|
|
set(MSVC${v}_CRT_DIR "${MSVC${v}_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.CRT")
|
|
|
|
if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
|
|
set(__install__libs
|
|
"${MSVC${v}_CRT_DIR}/msvcp${v}0.dll"
|
|
"${MSVC${v}_CRT_DIR}/msvcr${v}0.dll"
|
|
)
|
|
endif()
|
|
|
|
if(CMAKE_INSTALL_DEBUG_LIBRARIES)
|
|
set(MSVC${v}_CRT_DIR
|
|
"${MSVC${v}_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.DebugCRT")
|
|
set(__install__libs ${__install__libs}
|
|
"${MSVC${v}_CRT_DIR}/msvcp${v}0d.dll"
|
|
"${MSVC${v}_CRT_DIR}/msvcr${v}0d.dll"
|
|
)
|
|
endif()
|
|
endmacro()
|
|
|
|
if(MSVC10)
|
|
MSVCRT_FILES_FOR_VERSION(10)
|
|
endif()
|
|
|
|
if(MSVC11)
|
|
MSVCRT_FILES_FOR_VERSION(11)
|
|
endif()
|
|
|
|
if(CMAKE_INSTALL_MFC_LIBRARIES)
|
|
if(MSVC70)
|
|
set(__install__libs ${__install__libs}
|
|
"${SYSTEMROOT}/system32/mfc70.dll"
|
|
)
|
|
endif()
|
|
|
|
if(MSVC71)
|
|
set(__install__libs ${__install__libs}
|
|
"${SYSTEMROOT}/system32/mfc71.dll"
|
|
)
|
|
endif()
|
|
|
|
if(MSVC80)
|
|
if(CMAKE_INSTALL_DEBUG_LIBRARIES)
|
|
set(MSVC80_MFC_DIR
|
|
"${MSVC80_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC80.DebugMFC")
|
|
set(__install__libs ${__install__libs}
|
|
"${MSVC80_MFC_DIR}/Microsoft.VC80.DebugMFC.manifest"
|
|
"${MSVC80_MFC_DIR}/mfc80d.dll"
|
|
"${MSVC80_MFC_DIR}/mfc80ud.dll"
|
|
"${MSVC80_MFC_DIR}/mfcm80d.dll"
|
|
"${MSVC80_MFC_DIR}/mfcm80ud.dll"
|
|
)
|
|
endif()
|
|
|
|
set(MSVC80_MFC_DIR "${MSVC80_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC80.MFC")
|
|
# Install the manifest that allows DLLs to be loaded from the
|
|
# directory containing the executable.
|
|
if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
|
|
set(__install__libs ${__install__libs}
|
|
"${MSVC80_MFC_DIR}/Microsoft.VC80.MFC.manifest"
|
|
"${MSVC80_MFC_DIR}/mfc80.dll"
|
|
"${MSVC80_MFC_DIR}/mfc80u.dll"
|
|
"${MSVC80_MFC_DIR}/mfcm80.dll"
|
|
"${MSVC80_MFC_DIR}/mfcm80u.dll"
|
|
)
|
|
endif()
|
|
|
|
# include the language dll's for vs8 as well as the actuall dll's
|
|
set(MSVC80_MFCLOC_DIR "${MSVC80_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC80.MFCLOC")
|
|
# Install the manifest that allows DLLs to be loaded from the
|
|
# directory containing the executable.
|
|
set(__install__libs ${__install__libs}
|
|
"${MSVC80_MFCLOC_DIR}/Microsoft.VC80.MFCLOC.manifest"
|
|
"${MSVC80_MFCLOC_DIR}/mfc80chs.dll"
|
|
"${MSVC80_MFCLOC_DIR}/mfc80cht.dll"
|
|
"${MSVC80_MFCLOC_DIR}/mfc80enu.dll"
|
|
"${MSVC80_MFCLOC_DIR}/mfc80esp.dll"
|
|
"${MSVC80_MFCLOC_DIR}/mfc80deu.dll"
|
|
"${MSVC80_MFCLOC_DIR}/mfc80fra.dll"
|
|
"${MSVC80_MFCLOC_DIR}/mfc80ita.dll"
|
|
"${MSVC80_MFCLOC_DIR}/mfc80jpn.dll"
|
|
"${MSVC80_MFCLOC_DIR}/mfc80kor.dll"
|
|
)
|
|
endif()
|
|
|
|
if(MSVC90)
|
|
if(CMAKE_INSTALL_DEBUG_LIBRARIES)
|
|
set(MSVC90_MFC_DIR
|
|
"${MSVC90_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC90.DebugMFC")
|
|
set(__install__libs ${__install__libs}
|
|
"${MSVC90_MFC_DIR}/Microsoft.VC90.DebugMFC.manifest"
|
|
"${MSVC90_MFC_DIR}/mfc90d.dll"
|
|
"${MSVC90_MFC_DIR}/mfc90ud.dll"
|
|
"${MSVC90_MFC_DIR}/mfcm90d.dll"
|
|
"${MSVC90_MFC_DIR}/mfcm90ud.dll"
|
|
)
|
|
endif()
|
|
|
|
set(MSVC90_MFC_DIR "${MSVC90_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.MFC")
|
|
# Install the manifest that allows DLLs to be loaded from the
|
|
# directory containing the executable.
|
|
if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
|
|
set(__install__libs ${__install__libs}
|
|
"${MSVC90_MFC_DIR}/Microsoft.VC90.MFC.manifest"
|
|
"${MSVC90_MFC_DIR}/mfc90.dll"
|
|
"${MSVC90_MFC_DIR}/mfc90u.dll"
|
|
"${MSVC90_MFC_DIR}/mfcm90.dll"
|
|
"${MSVC90_MFC_DIR}/mfcm90u.dll"
|
|
)
|
|
endif()
|
|
|
|
# include the language dll's for vs9 as well as the actuall dll's
|
|
set(MSVC90_MFCLOC_DIR "${MSVC90_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.MFCLOC")
|
|
# Install the manifest that allows DLLs to be loaded from the
|
|
# directory containing the executable.
|
|
set(__install__libs ${__install__libs}
|
|
"${MSVC90_MFCLOC_DIR}/Microsoft.VC90.MFCLOC.manifest"
|
|
"${MSVC90_MFCLOC_DIR}/mfc90chs.dll"
|
|
"${MSVC90_MFCLOC_DIR}/mfc90cht.dll"
|
|
"${MSVC90_MFCLOC_DIR}/mfc90enu.dll"
|
|
"${MSVC90_MFCLOC_DIR}/mfc90esp.dll"
|
|
"${MSVC90_MFCLOC_DIR}/mfc90deu.dll"
|
|
"${MSVC90_MFCLOC_DIR}/mfc90fra.dll"
|
|
"${MSVC90_MFCLOC_DIR}/mfc90ita.dll"
|
|
"${MSVC90_MFCLOC_DIR}/mfc90jpn.dll"
|
|
"${MSVC90_MFCLOC_DIR}/mfc90kor.dll"
|
|
)
|
|
endif()
|
|
|
|
macro(MFC_FILES_FOR_VERSION version)
|
|
set(v "${version}")
|
|
|
|
if(CMAKE_INSTALL_DEBUG_LIBRARIES)
|
|
set(MSVC${v}_MFC_DIR
|
|
"${MSVC${v}_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.DebugMFC")
|
|
set(__install__libs ${__install__libs}
|
|
"${MSVC${v}_MFC_DIR}/mfc${v}0d.dll"
|
|
"${MSVC${v}_MFC_DIR}/mfc${v}0ud.dll"
|
|
"${MSVC${v}_MFC_DIR}/mfcm${v}0d.dll"
|
|
"${MSVC${v}_MFC_DIR}/mfcm${v}0ud.dll"
|
|
)
|
|
endif()
|
|
|
|
set(MSVC${v}_MFC_DIR "${MSVC${v}_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.MFC")
|
|
if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
|
|
set(__install__libs ${__install__libs}
|
|
"${MSVC${v}_MFC_DIR}/mfc${v}0.dll"
|
|
"${MSVC${v}_MFC_DIR}/mfc${v}0u.dll"
|
|
"${MSVC${v}_MFC_DIR}/mfcm${v}0.dll"
|
|
"${MSVC${v}_MFC_DIR}/mfcm${v}0u.dll"
|
|
)
|
|
endif()
|
|
|
|
# include the language dll's as well as the actuall dll's
|
|
set(MSVC${v}_MFCLOC_DIR "${MSVC${v}_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.MFCLOC")
|
|
set(__install__libs ${__install__libs}
|
|
"${MSVC${v}_MFCLOC_DIR}/mfc${v}0chs.dll"
|
|
"${MSVC${v}_MFCLOC_DIR}/mfc${v}0cht.dll"
|
|
"${MSVC${v}_MFCLOC_DIR}/mfc${v}0deu.dll"
|
|
"${MSVC${v}_MFCLOC_DIR}/mfc${v}0enu.dll"
|
|
"${MSVC${v}_MFCLOC_DIR}/mfc${v}0esn.dll"
|
|
"${MSVC${v}_MFCLOC_DIR}/mfc${v}0fra.dll"
|
|
"${MSVC${v}_MFCLOC_DIR}/mfc${v}0ita.dll"
|
|
"${MSVC${v}_MFCLOC_DIR}/mfc${v}0jpn.dll"
|
|
"${MSVC${v}_MFCLOC_DIR}/mfc${v}0kor.dll"
|
|
"${MSVC${v}_MFCLOC_DIR}/mfc${v}0rus.dll"
|
|
)
|
|
endmacro()
|
|
|
|
if(MSVC10)
|
|
MFC_FILES_FOR_VERSION(10)
|
|
endif()
|
|
|
|
if(MSVC11)
|
|
MFC_FILES_FOR_VERSION(11)
|
|
endif()
|
|
endif()
|
|
|
|
foreach(lib
|
|
${__install__libs}
|
|
)
|
|
if(EXISTS ${lib})
|
|
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS
|
|
${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} ${lib})
|
|
else()
|
|
if(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
|
|
message(WARNING "system runtime library file does not exist: '${lib}'")
|
|
# This warning indicates an incomplete Visual Studio installation
|
|
# or a bug somewhere above here in this file.
|
|
# If you would like to avoid this warning, fix the real problem, or
|
|
# set CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS before including
|
|
# this file.
|
|
endif()
|
|
endif()
|
|
endforeach()
|
|
endif()
|
|
|
|
if(WATCOM)
|
|
get_filename_component( CompilerPath ${CMAKE_C_COMPILER} PATH )
|
|
if(WATCOM17)
|
|
set( __install__libs ${CompilerPath}/clbr17.dll
|
|
${CompilerPath}/mt7r17.dll ${CompilerPath}/plbr17.dll )
|
|
endif()
|
|
if(WATCOM18)
|
|
set( __install__libs ${CompilerPath}/clbr18.dll
|
|
${CompilerPath}/mt7r18.dll ${CompilerPath}/plbr18.dll )
|
|
endif()
|
|
if(WATCOM19)
|
|
set( __install__libs ${CompilerPath}/clbr19.dll
|
|
${CompilerPath}/mt7r19.dll ${CompilerPath}/plbr19.dll )
|
|
endif()
|
|
foreach(lib
|
|
${__install__libs}
|
|
)
|
|
if(EXISTS ${lib})
|
|
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS
|
|
${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} ${lib})
|
|
else()
|
|
if(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
|
|
message(WARNING "system runtime library file does not exist: '${lib}'")
|
|
# This warning indicates an incomplete Watcom installation
|
|
# or a bug somewhere above here in this file.
|
|
# If you would like to avoid this warning, fix the real problem, or
|
|
# set CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS before including
|
|
# this file.
|
|
endif()
|
|
endif()
|
|
endforeach()
|
|
endif()
|
|
|
|
|
|
# Include system runtime libraries in the installation if any are
|
|
# specified by CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS.
|
|
if(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS)
|
|
if(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP)
|
|
if(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION)
|
|
if(WIN32)
|
|
set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION bin)
|
|
else()
|
|
set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION lib)
|
|
endif()
|
|
endif()
|
|
install(PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS}
|
|
DESTINATION ${CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION})
|
|
endif()
|
|
endif()
|