From 8e41cd84a55c0b62b19e910dcc2c67130368a6e4 Mon Sep 17 00:00:00 2001 From: Mikko Johannes Koivunalho Date: Thu, 2 May 2019 22:02:56 +0200 Subject: [PATCH] Improve exporting project Signed-off-by: Mikko Johannes Koivunalho --- CMakeLists.txt | 36 +++++++++++++++++++++++++++++++++++- cmake/check-config.cmake.in | 3 +++ src/CMakeLists.txt | 5 +++-- 3 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 cmake/check-config.cmake.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 52f1bfb..1594322 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,7 +34,7 @@ extract_version(configure.ac CHECK_MAJOR_VERSION) extract_version(configure.ac CHECK_MINOR_VERSION) extract_version(configure.ac CHECK_MICRO_VERSION) -set(CHECK_VERSION +set(check_VERSION "${CHECK_MAJOR_VERSION}.${CHECK_MINOR_VERSION}.${CHECK_MICRO_VERSION}") set(MEMORY_LEAKING_TESTS_ENABLED 1) @@ -366,3 +366,37 @@ if (CHECK_ENABLE_TESTS) COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_set_max_msg_size.sh) endif(UNIX OR MINGW OR MSYS) endif() + +############################################################################### +# Export project, prepare a config and config-version files +set(LIB_INSTALL_DIR lib CACHE FILEPATH "lib INSTALL DIR") +set(EXPORT_NAME ${CMAKE_PROJECT_NAME}) +include(CMakePackageConfigHelpers) +configure_package_config_file( + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${EXPORT_NAME}-config.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_NAME}-config.cmake + INSTALL_DESTINATION ${LIB_INSTALL_DIR}/${EXPORT_NAME}/cmake +) +write_basic_package_version_file( + ${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_NAME}-config-version.cmake + VERSION ${check_VERSION} + COMPATIBILITY AnyNewerVersion +) + +export(EXPORT check-targets + FILE "${CMAKE_CURRENT_BINARY_DIR}/check-targets.cmake" + NAMESPACE Check:: +) + +install(EXPORT check-targets + NAMESPACE Check:: + FILE check-targets.cmake + DESTINATION lib/cmake/${EXPORT_NAME} +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_NAME}-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_NAME}-config-version.cmake" + DESTINATION lib/cmake/${EXPORT_NAME} +) + diff --git a/cmake/check-config.cmake.in b/cmake/check-config.cmake.in new file mode 100644 index 0000000..15aabf7 --- /dev/null +++ b/cmake/check-config.cmake.in @@ -0,0 +1,3 @@ +@PACKAGE_INIT@ +include("${CMAKE_CURRENT_LIST_DIR}/check-targets.cmake") + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c2dbfda..ceed074 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -62,10 +62,11 @@ if(MSVC) endif (MSVC) install(TARGETS check - EXPORT check + EXPORT check-targets + INCLUDES DESTINATION include RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) install(FILES ${CMAKE_BINARY_DIR}/src/check.h DESTINATION include) -install(EXPORT check DESTINATION cmake) + -- 2.50.1