]> granicus.if.org Git - check/commitdiff
Improve exporting project
authorMikko Johannes Koivunalho <mikko.koivunalho@iki.fi>
Thu, 2 May 2019 20:02:56 +0000 (22:02 +0200)
committerMikko Johannes Koivunalho <mikko.koivunalho@iki.fi>
Sun, 12 May 2019 09:10:10 +0000 (11:10 +0200)
Signed-off-by: Mikko Johannes Koivunalho <mikko.koivunalho@iki.fi>
CMakeLists.txt
cmake/check-config.cmake.in [new file with mode: 0644]
src/CMakeLists.txt

index 52f1bfb5b92ed2f0bcd5617bfeb93fedaff59767..15943224575e0981fc9aa6b432b23f9784b03231 100644 (file)
@@ -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 (file)
index 0000000..15aabf7
--- /dev/null
@@ -0,0 +1,3 @@
+@PACKAGE_INIT@
+include("${CMAKE_CURRENT_LIST_DIR}/check-targets.cmake")
+
index c2dbfda5a9941ac18b89ecd3192f978c2c4fa3cb..ceed074389c1390b3e3ae1cb2131f0d1474141e7 100644 (file)
@@ -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)
+