123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- cmake_minimum_required(VERSION 3.10)
- if(NOT DEFINED CMAKE_CXX_STANDARD)
- set(CMAKE_CXX_STANDARD 11)
- set(CMAKE_CXX_STANDARD_REQUIRED True)
- endif()
- function(find_external_dependency name)
- set(${name}_ROOT "" CACHE PATH "Root directory to find ${name}")
- mark_as_advanced(${name}_DIR)
- find_package(${name} PATHS ${${name}_ROOT} REQUIRED)
- endfunction()
- project(Consumer)
- find_external_dependency(MathFunctions)
- add_library(consumer consumer.cxx)
- target_link_libraries(consumer PUBLIC MathFunctions)
- # install the consumer library
- install(TARGETS consumer DESTINATION bin EXPORT ConsumerTargets)
- # install the configuration targets
- install(EXPORT ConsumerTargets
- FILE ConsumerTargets.cmake
- DESTINATION lib/cmake/Consumer
- )
- include(CMakePackageConfigHelpers)
- # generate the config file that is includes the exports
- configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in
- "${CMAKE_CURRENT_BINARY_DIR}/ConsumerConfig.cmake"
- INSTALL_DESTINATION "lib/cmake/example"
- NO_SET_AND_CHECK_MACRO
- NO_CHECK_REQUIRED_COMPONENTS_MACRO
- )
- # install the configuration file
- install(FILES
- ${CMAKE_CURRENT_BINARY_DIR}/ConsumerConfig.cmake
- DESTINATION lib/cmake/Consumer
- )
- # generate the export targets for the build tree
- # needs to be after the install(TARGETS ) command
- export(EXPORT ConsumerTargets
- FILE "${CMAKE_CURRENT_BINARY_DIR}/ConsumerTargets.cmake"
- )
|