Generate package config files in cmake's current binary directory

Generate the config files of the package in CMAKE_CURRENT_BINARY_DIR
instead of CMAKE_BINARY_DIR because the later will refer to the main
project's binary directory if the library is included in the project
using the add_subdirectory command.
This commit is contained in:
Robert Marki 2016-04-25 11:55:03 +02:00
parent b1a2e9a715
commit 192a692034

View file

@ -33,15 +33,15 @@ target_link_libraries(${JSON_UNITTEST_TARGET_NAME} ${JSON_TARGET_NAME})
# generate a config and config version file for the package # generate a config and config version file for the package
include(CMakePackageConfigHelpers) include(CMakePackageConfigHelpers)
configure_package_config_file("cmake/config.cmake.in" configure_package_config_file("cmake/config.cmake.in"
"${CMAKE_BINARY_DIR}/${JSON_CONFIG_FILENAME}" "${CMAKE_CURRENT_BINARY_DIR}/${JSON_CONFIG_FILENAME}"
INSTALL_DESTINATION ${JSON_CONFIG_DESTINATION}) INSTALL_DESTINATION ${JSON_CONFIG_DESTINATION})
write_basic_package_version_file("${CMAKE_BINARY_DIR}/${JSON_CONFIGVERSION_FILENAME}" write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/${JSON_CONFIGVERSION_FILENAME}"
VERSION ${PROJECT_VERSION} VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion) COMPATIBILITY SameMajorVersion)
# export the library target and store build directory in package registry # export the library target and store build directory in package registry
export(TARGETS ${JSON_TARGET_NAME} export(TARGETS ${JSON_TARGET_NAME}
FILE "${CMAKE_BINARY_DIR}/${JSON_TARGETS_FILENAME}") FILE "${CMAKE_CURRENT_BINARY_DIR}/${JSON_TARGETS_FILENAME}")
export(PACKAGE ${JSON_PACKAGE_NAME}) export(PACKAGE ${JSON_PACKAGE_NAME})
# install library target and config files # install library target and config files
@ -52,6 +52,6 @@ install(FILES "src/json.hpp"
install(EXPORT ${JSON_PACKAGE_NAME} install(EXPORT ${JSON_PACKAGE_NAME}
FILE ${JSON_TARGETS_FILENAME} FILE ${JSON_TARGETS_FILENAME}
DESTINATION ${JSON_CONFIG_DESTINATION}) DESTINATION ${JSON_CONFIG_DESTINATION})
install(FILES "${CMAKE_BINARY_DIR}/${JSON_CONFIG_FILENAME}" install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${JSON_CONFIG_FILENAME}"
"${CMAKE_BINARY_DIR}/${JSON_CONFIGVERSION_FILENAME}" "${CMAKE_CURRENT_BINARY_DIR}/${JSON_CONFIGVERSION_FILENAME}"
DESTINATION ${JSON_CONFIG_DESTINATION}) DESTINATION ${JSON_CONFIG_DESTINATION})