]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Generate CMake package configuration files
authorMika Lindqvist <postmaster@raasu.org>
Tue, 23 Jan 2024 05:42:29 +0000 (07:42 +0200)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Tue, 30 Jan 2024 19:51:05 +0000 (20:51 +0100)
* For COMPAT mode, zlib-config.cmake and zlib-config-version.cmake
* For non-COMPAT mode, zlib-ng-config.cmake and zlib-ng-config-version.cmake

CMakeLists.txt
zlib-config.cmake.in [new file with mode: 0644]
zlib-ng-config.cmake.in [new file with mode: 0644]

index 95325a189778ca4bc0fc53b57140ae453bf72def..475f8ce2fef4809a01899cc9019ac02027e19a77 100644 (file)
@@ -42,6 +42,7 @@ include(CheckCSourceCompiles)
 include(CheckCSourceRuns)
 include(CheckCCompilerFlag)
 include(CMakeDependentOption)
+include(CMakePackageConfigHelpers)
 include(FeatureSummary)
 
 include(cmake/detect-arch.cmake)
@@ -1225,6 +1226,27 @@ if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL)
     install(EXPORT ${EXPORT_NAME}
         DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${EXPORT_NAME}"
         NAMESPACE ${EXPORT_NAME}::)
+    # Use GNU-style variable names
+    set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR})
+    set(LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR})
+    if (ZLIB_COMPAT)
+       set(PACKAGE_CONFIGNAME zlib)
+       set(PACKAGE_VERSION ${ZLIB_HEADER_VERSION})
+    else()
+       set(PACKAGE_CONFIGNAME zlib-ng)
+       set(PACKAGE_VERSION ${ZLIBNG_HEADER_VERSION})
+    endif()
+    configure_package_config_file(${PACKAGE_CONFIGNAME}-config.cmake.in
+        ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_CONFIGNAME}-config.cmake
+        INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${EXPORT_NAME}
+        PATH_VARS INCLUDE_INSTALL_DIR LIB_INSTALL_DIR)
+    write_basic_package_version_file(
+        ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_CONFIGNAME}-config-version.cmake
+        VERSION ${PACKAGE_VERSION}
+        COMPATIBILITY AnyNewerVersion)
+    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_CONFIGNAME}-config.cmake
+                  ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_CONFIGNAME}-config-version.cmake
+        DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${EXPORT_NAME})
 endif()
 
 #============================================================================
diff --git a/zlib-config.cmake.in b/zlib-config.cmake.in
new file mode 100644 (file)
index 0000000..1914164
--- /dev/null
@@ -0,0 +1,10 @@
+set(ZLIB_VERSION @ZLIB_HEADER_VERSION@)
+
+@PACKAGE_INIT@
+
+set_and_check(ZLIB_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
+set_and_check(ZLIB_LIB_DIR "@PACKAGE_LIB_INSTALL_DIR@")
+
+include("${CMAKE_CURRENT_LIST_DIR}/ZLIB.cmake")
+
+check_required_components(ZLIB)
diff --git a/zlib-ng-config.cmake.in b/zlib-ng-config.cmake.in
new file mode 100644 (file)
index 0000000..f7564a9
--- /dev/null
@@ -0,0 +1,10 @@
+set(zlib-ng_VERSION @ZLIBNG_HEADER_VERSION@)
+
+@PACKAGE_INIT@
+
+set_and_check(zlib-ng_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
+set_and_check(zlib-ng_LIB_DIR "@PACKAGE_LIB_INSTALL_DIR@")
+
+include("${CMAKE_CURRENT_LIST_DIR}/zlib-ng.cmake")
+
+check_required_components(zlib-ng)