diff --git a/FullSimLight/MagneticField/CMakeLists.txt b/FullSimLight/MagneticField/CMakeLists.txt index 4b047cc5e274eaa2b69d01e1f4f326d62a44c979..cdef14672706562a5adb8ef9b79d1abbe03df3aa 100644 --- a/FullSimLight/MagneticField/CMakeLists.txt +++ b/FullSimLight/MagneticField/CMakeLists.txt @@ -3,13 +3,10 @@ cmake_minimum_required( VERSION 3.1...3.19 ) project( "MagneticField" VERSION ${GeoModel_VERSION} LANGUAGES CXX ) -# Set up the build of the three libraries of the project. +# Set up the build of the libraries of the project's subpackages add_subdirectory(MagFieldInterfaces) add_subdirectory(MagFieldServices) -install(EXPORT MagFieldInterfaces-export FILE MagneticField-MagFieldInterfaces.cmake DESTINATION lib/cmake/MagneticField) -install(EXPORT MagFieldServices-export FILE MagneticField-MagFieldServices.cmake DESTINATION lib/cmake/MagneticField) -install(FILES cmake/MagneticFieldConfig.cmake DESTINATION lib/cmake/MagneticField) # Install headers file( GLOB HEADERS_Int MagFieldInterfaces/MagFieldInterfaces/*.h ) @@ -21,4 +18,28 @@ install( FILES ${HEADERS_Svc} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/MagFieldServices COMPONENT Development ) +# install the CMake configuration files of the subpackages +install(EXPORT MagFieldInterfaces-export FILE MagneticField-MagFieldInterfaces.cmake DESTINATION lib/cmake/MagneticField) +install(EXPORT MagFieldServices-export FILE MagneticField-MagFieldServices.cmake DESTINATION lib/cmake/MagneticField) + +# Write and install the version file +write_basic_config_version_file( + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}ConfigVersion.cmake + VERSION ${PROJECT_VERSION} + COMPATIBILITY SameMajorVersion ) +install( + FILES + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}ConfigVersion.cmake + COMPONENT Development + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} ) + +# Install the hand-written project configuration. +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/MagneticFieldConfig.cmake.in + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}Config.cmake + @ONLY ) +install( + FILES + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}Config.cmake + COMPONENT Development + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} ) diff --git a/FullSimLight/MagneticField/cmake/MagneticFieldConfig.cmake b/FullSimLight/MagneticField/cmake/MagneticFieldConfig.cmake deleted file mode 100644 index b758ddbf5e9f0d00edbe43fc8f11704f2393ed96..0000000000000000000000000000000000000000 --- a/FullSimLight/MagneticField/cmake/MagneticFieldConfig.cmake +++ /dev/null @@ -1,5 +0,0 @@ -get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) - -include(${SELF_DIR}/MagneticField-MagFieldInterfaces.cmake) -include(${SELF_DIR}/MagneticField-MagFieldServices.cmake) - diff --git a/FullSimLight/MagneticField/cmake/MagneticFieldConfig.cmake.in b/FullSimLight/MagneticField/cmake/MagneticFieldConfig.cmake.in new file mode 100644 index 0000000000000000000000000000000000000000..994c1ba02f7ec13510fd16eb9625c6c9b06fb3ff --- /dev/null +++ b/FullSimLight/MagneticField/cmake/MagneticFieldConfig.cmake.in @@ -0,0 +1,17 @@ +get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) + +include(${SELF_DIR}/MagneticField-MagFieldInterfaces.cmake) +include(${SELF_DIR}/MagneticField-MagFieldServices.cmake) + +# Set the version of the installed project. +set( MagneticField_VERSION "@PROJECT_VERSION@" ) + +# Print some standard messages about the package being found. +include( FindPackageHandleStandardArgs ) +find_package_handle_standard_args( MagneticField + FOUND_VAR MagneticField_FOUND + REQUIRED_VARS SELF_DIR + VERSION_VAR MagneticField_VERSION ) + +# Clean up. +unset( SELF_DIR )