mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-12 16:21:13 +00:00
71 lines
2.6 KiB
CMake
71 lines
2.6 KiB
CMake
################################################################################
|
|
# 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()
|