################################################################################ # Copyright (C) 2018-2021 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH # # # # This software is distributed under the terms of the # # GNU Lesser General Public Licence (LGPL) version 3, # # copied verbatim in the file "LICENSE" # ################################################################################ include_guard(GLOBAL) include(FairCMakeModules) include(FairFindPackage2) include(FairMQBundlePackageHelper) function(generate_package_components) list(JOIN PROJECT_PACKAGE_COMPONENTS} " " COMPS) set(PACKAGE_COMPONENTS "\ ####### Expanded from @PACKAGE_COMPONENTS@ by configure_package_config_file() ######### set(${PROJECT_NAME}_PACKAGE_COMPONENTS ${COMPS}) ") foreach(comp IN LISTS PROJECT_PACKAGE_COMPONENTS) string(CONCAT PACKAGE_COMPONENTS ${PACKAGE_COMPONENTS} "\ set(${PROJECT_NAME}_${comp}_FOUND TRUE) ") endforeach() string(CONCAT PACKAGE_COMPONENTS ${PACKAGE_COMPONENTS} "\ check_required_components(${PROJECT_NAME}) ") set(PACKAGE_COMPONENTS ${PACKAGE_COMPONENTS} PARENT_SCOPE) endfunction() # Configure/Install CMake package macro(install_cmake_package) list(SORT PROJECT_PACKAGE_DEPENDENCIES) list(SORT PROJECT_INTERFACE_PACKAGE_DEPENDENCIES) include(CMakePackageConfigHelpers) set(PACKAGE_INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}-${PROJECT_VERSION} ) if(BUILD_FAIRMQ) install(EXPORT ${PROJECT_EXPORT_SET} NAMESPACE ${PROJECT_NAME}:: DESTINATION ${PACKAGE_INSTALL_DESTINATION} EXPORT_LINK_INTERFACE_LIBRARIES ) endif() write_basic_package_version_file( ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake VERSION ${PROJECT_VERSION} COMPATIBILITY AnyNewerVersion ) fair_generate_package_dependencies() # fills ${PACKAGE_DEPENDENCIES} generate_package_components() # fills ${PACKAGE_COMPONENTS} string(TOUPPER ${CMAKE_BUILD_TYPE} PROJECT_BUILD_TYPE_UPPER) set(PROJECT_CXX_FLAGS ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${PROJECT_BUILD_TYPE_UPPER}}) configure_package_config_file( ${CMAKE_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake INSTALL_DESTINATION ${PACKAGE_INSTALL_DESTINATION} PATH_VARS CMAKE_INSTALL_PREFIX ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake DESTINATION ${PACKAGE_INSTALL_DESTINATION} ) endmacro()