diff --git a/CMakeLists.txt b/CMakeLists.txt index b20a7eff..f474a5f0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,7 @@ include(CheckTypeSize) include(CheckFunctionExists) include(CheckIncludeFile) include(CheckCSourceCompiles) +include(CMakePackageConfigHelpers) include(GNUInstallDirs) # @@ -158,6 +159,7 @@ if(ZLIB_INSTALL_LIBRARIES) if(ZLIB_BUILD_SHARED) install(TARGETS zlib COMPONENT Runtime + EXPORT zlibExport RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") @@ -181,11 +183,32 @@ if(ZLIB_INSTALL_LIBRARIES) if(ZLIB_BUILD_STATIC) install(TARGETS zlibstatic COMPONENT Development + EXPORT zlibExport RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") endif(ZLIB_BUILD_STATIC) + configure_package_config_file(${zlib_SOURCE_DIR}/zlibConfig.cmake.in + ${zlib_BINARY_DIR}/zlibConfig.cmake + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib + NO_CHECK_REQUIRED_COMPONENTS_MACRO) + + write_basic_package_version_file( + "${zlib_BINARY_DIR}/zlibConfigVersion.cmake" + VERSION "${zlib_VERSION}" + COMPATIBILITY AnyNewerVersion) + + install(FILES + ${zlib_BINARY_DIR}/zlibConfig.cmake + ${zlib_BINARY_DIR}/zlibConfigVersion.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib) + + install(EXPORT zlibExport + FILE zlib.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib + NAMESPACE ZLIB::) + install(FILES ${ZLIB_PUBLIC_HDRS} COMPONENT Development DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" diff --git a/zlibConfig.cmake.in b/zlibConfig.cmake.in new file mode 100644 index 00000000..aa11011e --- /dev/null +++ b/zlibConfig.cmake.in @@ -0,0 +1,2 @@ +@PACKAGE_INIT@ +INCLUDE (${CMAKE_CURRENT_LIST_DIR}/zlib.cmake)