From c54e2596c23d1df93f2a91800a8fc73d22829541 Mon Sep 17 00:00:00 2001 From: Jack Andersen Date: Wed, 22 May 2019 18:07:58 -1000 Subject: [PATCH] Add cmake package config files --- CMakeLists.txt | 40 ++++++++++++++++++++++++++++++++++++++++ Config.cmake.in | 4 ++++ 2 files changed, 44 insertions(+) create mode 100644 Config.cmake.in diff --git a/CMakeLists.txt b/CMakeLists.txt index db57eb2..443708d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,5 @@ +include (CMakePackageConfigHelpers) + include_directories(include) add_library(logvisor lib/logvisor.cpp @@ -6,3 +8,41 @@ add_library(logvisor set(LOGVISOR_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include CACHE PATH "logvisor include path" FORCE) install(DIRECTORY include/logvisor DESTINATION include) + +set(version_config_file "${PROJECT_BINARY_DIR}/logvisorConfigVersion.cmake") +set(config_file "${PROJECT_BINARY_DIR}/logvisorConfig.cmake") +set(config_install_dir "lib/cmake/logvisor") + +# Associate target with export +install( + TARGETS logvisor + EXPORT logvisorTargets + ARCHIVE DESTINATION "lib" + INCLUDES DESTINATION include # This sets the INTERFACE_INCLUDE_DIRECTORIES property of the target. +) + +# Install the target config files +install( + EXPORT logvisorTargets + NAMESPACE "logvisor::" + DESTINATION "${config_install_dir}" +) + +# Generate version config file +write_basic_package_version_file( + "${version_config_file}" + COMPATIBILITY SameMajorVersion +) + +# Generate config file +configure_package_config_file( + "Config.cmake.in" + "${config_file}" + INSTALL_DESTINATION "lib/cmake/logvisor" +) + +# Install the config files +install( + FILES "${config_file}" "${version_config_file}" + DESTINATION ${config_install_dir} +) diff --git a/Config.cmake.in b/Config.cmake.in new file mode 100644 index 0000000..6668c99 --- /dev/null +++ b/Config.cmake.in @@ -0,0 +1,4 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/logvisorTargets.cmake") +check_required_components(logvisor)