Changeset View
Changeset View
Standalone View
Standalone View
cmake/modules/InstallationHelper.cmake
# This file contains facilities for installing the files. | # This file contains facilities for installing the files. | ||||
include(GNUInstallDirs) | include(GNUInstallDirs) | ||||
include(SanitizeHelper) | |||||
function(_add_install_target COMPONENT) | |||||
sanitize_target_name("install-" "${COMPONENT}" INSTALL_TARGET) | |||||
if(NOT TARGET ${INSTALL_TARGET}) | |||||
add_custom_target(${INSTALL_TARGET} | |||||
COMMENT "Installing component ${COMPONENT}" | |||||
COMMAND | |||||
"${CMAKE_COMMAND}" | |||||
-DCOMPONENT="${COMPONENT}" | |||||
-DCMAKE_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}" | |||||
-P cmake_install.cmake | |||||
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" | |||||
) | |||||
if(TARGET install-all) | |||||
add_dependencies(install-all ${INSTALL_TARGET}) | |||||
endif() | |||||
endif() | |||||
# Other arguments are additional dependencies | |||||
if(ARGN) | |||||
add_dependencies(${INSTALL_TARGET} ${ARGN}) | |||||
endif() | |||||
endfunction() | |||||
function(install_target _target) | function(install_target _target) | ||||
cmake_parse_arguments(ARG | cmake_parse_arguments(ARG | ||||
"" | "" | ||||
"COMPONENT" | "COMPONENT" | ||||
"" | "" | ||||
${ARGN} | ${ARGN} | ||||
) | ) | ||||
Show All 16 Lines | LIBRARY | ||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}" | DESTINATION "${CMAKE_INSTALL_LIBDIR}" | ||||
COMPONENT ${ARG_COMPONENT} | COMPONENT ${ARG_COMPONENT} | ||||
${ARG_UNPARSED_ARGUMENTS} | ${ARG_UNPARSED_ARGUMENTS} | ||||
PUBLIC_HEADER | PUBLIC_HEADER | ||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" | DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" | ||||
COMPONENT ${ARG_COMPONENT} | COMPONENT ${ARG_COMPONENT} | ||||
${ARG_UNPARSED_ARGUMENTS} | ${ARG_UNPARSED_ARGUMENTS} | ||||
) | ) | ||||
_add_install_target("${ARG_COMPONENT}" ${_target}) | |||||
endfunction() | endfunction() | ||||
function(install_shared_library NAME) | function(install_shared_library NAME) | ||||
cmake_parse_arguments(ARG | cmake_parse_arguments(ARG | ||||
"" | "" | ||||
"" | "" | ||||
"PUBLIC_HEADER" | "PUBLIC_HEADER" | ||||
${ARGN} | ${ARGN} | ||||
Show All 39 Lines | function(install_shared_library NAME) | ||||
list(APPEND _properties SOVERSION "${CMAKE_PROJECT_VERSION_MAJOR}") | list(APPEND _properties SOVERSION "${CMAKE_PROJECT_VERSION_MAJOR}") | ||||
set_target_properties(${_shared_name} PROPERTIES ${_properties}) | set_target_properties(${_shared_name} PROPERTIES ${_properties}) | ||||
install_target(${_shared_name}) | install_target(${_shared_name}) | ||||
endfunction() | endfunction() | ||||
function(install_manpages COMPONENT) | function(install_manpages) | ||||
set(MAN_DESTINATION "${CMAKE_INSTALL_MANDIR}/man1") | set(MAN_DESTINATION "${CMAKE_INSTALL_MANDIR}/man1") | ||||
install( | install( | ||||
FILES ${ARGN} | FILES ${ARGN} | ||||
DESTINATION "${MAN_DESTINATION}" | DESTINATION "${MAN_DESTINATION}" | ||||
COMPONENT "${COMPONENT}" | COMPONENT manpages | ||||
) | ) | ||||
_add_install_target(manpages) | |||||
endfunction() | endfunction() |