Warning, /acts/cmake/ActsCreatePackageConfig.cmake is written in an unsupported language. File is not indexed.
0001 # Create relocatable CMake package config files
0002
0003 include(CMakePackageConfigHelpers)
0004
0005 # use path suggested by
0006 # https://cmake.org/cmake/help/v3.18/manual/cmake-packages.7.html
0007 set(install_package_config_dir "${CMAKE_INSTALL_LIBDIR}/cmake/Acts")
0008
0009 # version is taken automatically from PROJECT_VERSION; no need to specify
0010 write_basic_package_version_file(
0011 ${PROJECT_BINARY_DIR}/ActsConfigVersion.cmake
0012 COMPATIBILITY SameMajorVersion
0013 )
0014 configure_package_config_file(
0015 ${CMAKE_CURRENT_LIST_DIR}/ActsConfig.cmake.in
0016 ${PROJECT_BINARY_DIR}/ActsConfig.cmake
0017 INSTALL_DESTINATION ${install_package_config_dir}
0018 PATH_VARS CMAKE_INSTALL_BINDIR CMAKE_INSTALL_INCLUDEDIR CMAKE_INSTALL_LIBDIR
0019 )
0020 configure_file(
0021 ${CMAKE_CURRENT_LIST_DIR}/ActsGeometryModuleHelpers.cmake
0022 ${PROJECT_BINARY_DIR}/ActsGeometryModuleHelpers.cmake
0023 COPYONLY
0024 )
0025 configure_file(
0026 ${CMAKE_CURRENT_LIST_DIR}/ActsDD4hepGeometryModuleHelpers.cmake
0027 ${PROJECT_BINARY_DIR}/ActsDD4hepGeometryModuleHelpers.cmake
0028 COPYONLY
0029 )
0030
0031 # install cmake package configs
0032 install(
0033 FILES
0034 ${PROJECT_BINARY_DIR}/ActsConfigVersion.cmake
0035 ${PROJECT_BINARY_DIR}/ActsConfig.cmake
0036 DESTINATION ${install_package_config_dir}
0037 )
0038
0039 # For git repositories, patch ActsConfig.cmake at install time with fresh git hash
0040 if(_acts_is_git_repo)
0041 install(
0042 CODE
0043 "
0044 # Get git hash at install time
0045 execute_process(
0046 COMMAND git rev-parse HEAD
0047 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
0048 OUTPUT_VARIABLE _install_git_hash
0049 OUTPUT_STRIP_TRAILING_WHITESPACE
0050 ERROR_QUIET
0051 )
0052 execute_process(
0053 COMMAND git rev-parse --short HEAD
0054 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
0055 OUTPUT_VARIABLE _install_git_hash_short
0056 OUTPUT_STRIP_TRAILING_WHITESPACE
0057 ERROR_QUIET
0058 )
0059 execute_process(
0060 COMMAND git diff-index --quiet HEAD --
0061 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
0062 RESULT_VARIABLE _git_is_dirty
0063 ERROR_QUIET
0064 )
0065
0066 if(NOT _git_is_dirty EQUAL 0)
0067 set(_install_git_hash \"\${_install_git_hash}-dirty\")
0068 set(_install_git_hash_short \"\${_install_git_hash_short}-dirty\")
0069 endif()
0070
0071 # Read the installed ActsConfig.cmake
0072 set(_config_file \"\${CMAKE_INSTALL_PREFIX}/${install_package_config_dir}/ActsConfig.cmake\")
0073 file(READ \"\${_config_file}\" _config_content)
0074
0075 # Replace the commit hash lines
0076 string(REGEX REPLACE
0077 \"set\\\\(Acts_COMMIT_HASH \\\"[^\\\"]*\\\"\\\\)\"
0078 \"set(Acts_COMMIT_HASH \\\"\${_install_git_hash}\\\")\"
0079 _config_content \"\${_config_content}\")
0080 string(REGEX REPLACE
0081 \"set\\\\(Acts_COMMIT_HASH_SHORT \\\"[^\\\"]*\\\"\\\\)\"
0082 \"set(Acts_COMMIT_HASH_SHORT \\\"\${_install_git_hash_short}\\\")\"
0083 _config_content \"\${_config_content}\")
0084
0085 # Write back the patched content
0086 file(WRITE \"\${_config_file}\" \"\${_config_content}\")
0087 "
0088 )
0089 endif()
0090
0091 # install third party FindXXX.cmake files
0092 file(GLOB_RECURSE _pckg_find_files "${CMAKE_CURRENT_LIST_DIR}/Find*.cmake")
0093 install(
0094 FILES ${_pckg_find_files}
0095 DESTINATION ${install_package_config_dir}/Modules
0096 )
0097
0098 install(
0099 FILES
0100 ${CMAKE_CURRENT_LIST_DIR}/ActsGeometryModuleHelpers.cmake
0101 ${CMAKE_CURRENT_LIST_DIR}/ActsDD4hepGeometryModuleHelpers.cmake
0102 DESTINATION ${install_package_config_dir}
0103 )
0104
0105 # install target configs for all available components
0106 foreach(_component ${_components})
0107 install(
0108 EXPORT Acts${_component}Targets
0109 DESTINATION ${install_package_config_dir}
0110 )
0111 endforeach()