From 1af60ef5ab661e2e456ad52cf749d8e1e4f6403e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ho=C5=99e=C5=88ovsk=C3=BD?= Date: Sun, 24 Jun 2018 10:11:14 +0200 Subject: [PATCH] Separate Catch2Config from targets This lets us add the installed helper scripts to the cmake module path, letting CMake users just include them after requiring Catch2 package. --- CMake/Catch2Config.cmake.in | 10 ++++++++++ CMakeLists.txt | 18 +++++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 CMake/Catch2Config.cmake.in diff --git a/CMake/Catch2Config.cmake.in b/CMake/Catch2Config.cmake.in new file mode 100644 index 0000000000..c485219cdb --- /dev/null +++ b/CMake/Catch2Config.cmake.in @@ -0,0 +1,10 @@ +@PACKAGE_INIT@ + + +# Avoid repeatedly including the targets +if(NOT TARGET Catch2::Catch2) + # Provide path for scripts + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") + + include(${CMAKE_CURRENT_LIST_DIR}/Catch2Targets.cmake) +endif() diff --git a/CMakeLists.txt b/CMakeLists.txt index e753c6b59d..76494710de 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -84,18 +84,29 @@ add_library(Catch2::Catch2 ALIAS Catch2) set(CATCH_CMAKE_CONFIG_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Catch2") +include(CMakePackageConfigHelpers) +configure_package_config_file( + ${CMAKE_CURRENT_LIST_DIR}/CMake/Catch2Config.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/Catch2Config.cmake + INSTALL_DESTINATION + ${CATCH_CMAKE_CONFIG_DESTINATION} +) + + # create and install an export set for catch target as Catch2::Catch install( TARGETS Catch2 EXPORT - Catch2Config - DESTINATION ${CMAKE_INSTALL_LIBDIR} + Catch2Targets + DESTINATION + ${CMAKE_INSTALL_LIBDIR} ) + install( EXPORT - Catch2Config + Catch2Targets NAMESPACE Catch2:: DESTINATION @@ -117,6 +128,7 @@ install( install( FILES + "${CMAKE_CURRENT_BINARY_DIR}/Catch2Config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/Catch2ConfigVersion.cmake" DESTINATION ${CATCH_CMAKE_CONFIG_DESTINATION}