From d2a2eea4dc6f56db82a0239380bb7428ea315e8e Mon Sep 17 00:00:00 2001 From: Riccardo Maria Bianchi <riccardo.maria.bianchi@cern.ch> Date: Mon, 13 Jun 2022 14:31:44 +0200 Subject: [PATCH] (cmake) Fix the targets export to also have proper version number --- FullSimLight/MagneticField/CMakeLists.txt | 29 ++++++++++++++++--- .../cmake/MagneticFieldConfig.cmake | 5 ---- .../cmake/MagneticFieldConfig.cmake.in | 17 +++++++++++ 3 files changed, 42 insertions(+), 9 deletions(-) delete mode 100644 FullSimLight/MagneticField/cmake/MagneticFieldConfig.cmake create mode 100644 FullSimLight/MagneticField/cmake/MagneticFieldConfig.cmake.in diff --git a/FullSimLight/MagneticField/CMakeLists.txt b/FullSimLight/MagneticField/CMakeLists.txt index 4b047cc5e..cdef14672 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 b758ddbf5..000000000 --- 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 000000000..994c1ba02 --- /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 ) -- GitLab