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.
This commit is contained in:
Martin Hořeňovský 2018-06-24 10:11:14 +02:00
parent 3743295ca8
commit 1af60ef5ab
2 changed files with 25 additions and 3 deletions

View File

@ -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()

View File

@ -84,18 +84,29 @@ add_library(Catch2::Catch2 ALIAS Catch2)
set(CATCH_CMAKE_CONFIG_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/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 # create and install an export set for catch target as Catch2::Catch
install( install(
TARGETS TARGETS
Catch2 Catch2
EXPORT EXPORT
Catch2Config Catch2Targets
DESTINATION ${CMAKE_INSTALL_LIBDIR} DESTINATION
${CMAKE_INSTALL_LIBDIR}
) )
install( install(
EXPORT EXPORT
Catch2Config Catch2Targets
NAMESPACE NAMESPACE
Catch2:: Catch2::
DESTINATION DESTINATION
@ -117,6 +128,7 @@ install(
install( install(
FILES FILES
"${CMAKE_CURRENT_BINARY_DIR}/Catch2Config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/Catch2ConfigVersion.cmake" "${CMAKE_CURRENT_BINARY_DIR}/Catch2ConfigVersion.cmake"
DESTINATION DESTINATION
${CATCH_CMAKE_CONFIG_DESTINATION} ${CATCH_CMAKE_CONFIG_DESTINATION}