Commit 39728a2 for zlib

commit 39728a2b005fa549307943a3ed00afa878ab9a65
Author: Vollstrecker <werner@vollstreckernet.de>
Date:   Sat Jan 3 10:53:14 2026 +0100

    CMake: Add install and exports.

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1e94f80..66dd728 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -241,7 +241,7 @@ if(ZLIB_INSTALL)
         if(ZLIB_INSTALL_COMPAT_DLL)
             install(
                 FILES $<TARGET_FILE:zlib>
-                COMPONENT Runtime
+                COMPONENT Development
                 RENAME zlib1.dll
                 DESTINATION "${CMAKE_INSTALL_BINDIR}")
         endif(ZLIB_INSTALL_COMPAT_DLL)
diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt
index fdaf2e9..8ec3bbd 100644
--- a/contrib/CMakeLists.txt
+++ b/contrib/CMakeLists.txt
@@ -14,6 +14,11 @@ function(zlib_add_contrib_lib name description dir)
             set(ZLIB_${name}_BUILD_TESTING ${ZLIB_BUILD_TESTING} CACHE BOOL "")
         endif(NOT DEFINED ZLIB_${name}_BUILD_TESTING)

+
+        if(NOT DEFINED ZLIB_${name}_INSTALL)
+            set(ZLIB_${name}_INSTALL ${ZLIB_INSTALL} CACHE BOOL "")
+        endif(NOT DEFINED ZLIB_${name}_INSTALL)
+
         add_subdirectory(${dir}/)
     endif(ZLIB_BUILD_${name})
 endfunction(zlib_add_contrib_lib name description dir)
diff --git a/contrib/blast/CMakeLists.txt b/contrib/blast/CMakeLists.txt
index 12c08a6..b1a9065 100644
--- a/contrib/blast/CMakeLists.txt
+++ b/contrib/blast/CMakeLists.txt
@@ -1,7 +1,5 @@
 cmake_minimum_required(VERSION 3.12...3.31)

-set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules")
-
 project(
     blast
     VERSION 1.3.0
@@ -12,9 +10,13 @@ project(
 option(ZLIB_BLAST_BUILD_SHARED "Enable building blast shared library" ON)
 option(ZLIB_BLAST_BUILD_STATIC "Enable building blast static library" ON)
 option(ZLIB_BLAST_BUILD_TESTING "Enable building tests for blast" ON)
+option(ZLIB_BLAST_INSTALL "Enable installation of blast" ON)
+
+include(GNUInstallDirs)
+include(CMakePackageConfigHelpers)

 if(WIN32 OR CYGWIN)
-    set(zlibAda_static_suffix "s")
+    set(zlibblast_static_suffix "s")
     set(CMAKE_DEBUG_POSTFIX "d")
 endif(WIN32 OR CYGWIN)

@@ -83,3 +85,58 @@ if(ZLIB_BLAST_BUILD_STATIC)
                     "${CMAKE_CURRENT_BINARY_DIR}")
     endif(ZLIB_BLAST_BUILD_TESTING)
 endif(ZLIB_BLAST_BUILD_STATIC)
+
+if(ZLIB_BLAST_INSTALL)
+    if(ZLIB_BLAST_BUILD_SHARED)
+        install(
+            TARGETS zlib_blast_blast
+            COMPONENT Runtime
+            EXPORT zlibBlastSharedExport
+            RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
+        install(
+            EXPORT zlibBlastSharedExport
+            FILE blast-shared.cmake
+            NAMESPACE BLAST::
+            DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast)
+
+        if(MSVC)
+            install(
+                FILES $<TARGET_PDB_FILE:zlib_blast_blast>
+                COMPONENT Development
+                DESTINATION ${CMAKE_INSTALL_BINDIR}
+                CONFIGURATIONS Debug OR RelWithDebInfo
+                OPTIONAL)
+        endif(MSVC)
+    endif(ZLIB_BLAST_BUILD_SHARED)
+
+    if(ZLIB_BLAST_BUILD_STATIC)
+        install(
+            TARGETS zlib_blast_blastStatic
+            COMPONENT Development
+            EXPORT zlibBlastStaticExport
+            ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
+        install(
+            EXPORT zlibBlastStaticExport
+            FILE blast-static.cmake
+            NAMESPACE BLAST::
+            DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast)
+    endif(ZLIB_BLAST_BUILD_STATIC)
+
+    configure_package_config_file(
+        ${blast_SOURCE_DIR}/blastConfig.cmake.in
+        ${blast_BINARY_DIR}/blastConfig.cmake
+        INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast)
+
+    write_basic_package_version_file(
+        "${blast_BINARY_DIR}/blastConfigVersion.cmake"
+        VERSION "${blast_VERSION}"
+        COMPATIBILITY AnyNewerVersion)
+
+    install(FILES ${blast_BINARY_DIR}/blastConfig.cmake
+                  ${blast_BINARY_DIR}/blastConfigVersion.cmake
+            DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast)
+    install(
+        FILES blast.h
+        COMPONENT Development
+        DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
+endif(ZLIB_BLAST_INSTALL)
diff --git a/contrib/iostream3/CMakeLists.txt b/contrib/iostream3/CMakeLists.txt
index 3426a58..01bc279 100644
--- a/contrib/iostream3/CMakeLists.txt
+++ b/contrib/iostream3/CMakeLists.txt
@@ -1,7 +1,7 @@
 cmake_minimum_required(VERSION 3.12...3.31)

 project(
-    iostreamsV3
+    iostreamV3
     VERSION 1.0.0
     LANGUAGES CXX
     DESCRIPTION "A library for using C++ IOStreams with zlib V3"
@@ -10,6 +10,10 @@ project(
 option(ZLIB_IOSTREAM3_BUILD_SHARED "Enable building blast shared library" ON)
 option(ZLIB_IOSTREAM3_BUILD_STATIC "Enable building blast static library" ON)
 option(ZLIB_IOSTREAM3_BUILD_TESTING "Enable building tests for blast" ON)
+option(ZLIB_IOSTREAM3_INSTALL "Enable installation of iostream" ON)
+
+include(GNUInstallDirs)
+include(CMakePackageConfigHelpers)

 if(NOT DEFINED ZLIB_BUILD_IOSTREAM3)
     if(ZLIB_IOSTREAM3_BUILD_SHARED)
@@ -88,3 +92,58 @@ if(ZLIB_IOSTREAM3_BUILD_TESTING)
         PROPERTIES
             FIXTURES_CLEANUP zlib_iostream3_cleanup)
 endif(ZLIB_IOSTREAM3_BUILD_TESTING)
+
+if(ZLIB_IOSTREAM3_INSTALL)
+    if(ZLIB_IOSTREAM3_BUILD_SHARED)
+        install(
+            TARGETS zlib_iostream3_iostreamv3
+            COMPONENT Runtime
+            EXPORT zlibiostream3SharedExport
+            RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
+        install(
+            EXPORT zlibiostream3SharedExport
+            FILE iostreamv3-shared.cmake
+            NAMESPACE IOSTREAMV3::
+            DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/iostreamv3)
+
+        if(MSVC)
+            install(
+                FILES $<TARGET_PDB_FILE:zlib_iostream3_iostream3>
+                COMPONENT Development
+                DESTINATION ${CMAKE_INSTALL_BINDIR}
+                CONFIGURATIONS Debug OR RelWithDebInfo
+                OPTIONAL)
+        endif(MSVC)
+    endif(ZLIB_IOSTREAM3_BUILD_SHARED)
+
+    if(ZLIB_IOSTREAM3_BUILD_STATIC)
+        install(
+            TARGETS zlib_iostream3_iostreamv3Static
+            COMPONENT Development
+            EXPORT iostream3StaticExport
+            ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
+        install(
+            EXPORT iostream3StaticExport
+            FILE iostreamv3-static.cmake
+            NAMESPACE IOSTREAMV3::
+            DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/iostreamv3)
+    endif(ZLIB_IOSTREAM3_BUILD_STATIC)
+
+    configure_package_config_file(
+        ${iostreamV3_SOURCE_DIR}/iostream3Config.cmake.in
+        ${iostreamV3_BINARY_DIR}/iostreamv3Config.cmake
+        INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/iostreamv3)
+
+    write_basic_package_version_file(
+        "${iostreamV3_BINARY_DIR}/iostreamv3ConfigVersion.cmake"
+        VERSION "${iostream3_VERSION}"
+        COMPATIBILITY AnyNewerVersion)
+
+    install(FILES ${iostreamV3_BINARY_DIR}/iostreamv3Config.cmake
+                  ${iostreamV3_BINARY_DIR}/iostreamv3ConfigVersion.cmake
+            DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/iostreamv3)
+    install(
+        FILES zfstream.h
+        COMPONENT Development
+        DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
+endif(ZLIB_IOSTREAM3_INSTALL)
diff --git a/contrib/puff/CMakeLists.txt b/contrib/puff/CMakeLists.txt
index f7418fd..1696c76 100644
--- a/contrib/puff/CMakeLists.txt
+++ b/contrib/puff/CMakeLists.txt
@@ -1,7 +1,7 @@
 cmake_minimum_required(VERSION 3.12...3.31)

 project(
-    iostreamsV3
+    puff
     VERSION 1.0.0
     LANGUAGES C
     DESCRIPTION "A library for decompressing deflate with very little footprint"
@@ -10,6 +10,10 @@ project(
 option(ZLIB_PUFF_BUILD_SHARED "Enable building blast shared library" ON)
 option(ZLIB_PUFF_BUILD_STATIC "Enable building blast static library" ON)
 option(ZLIB_PUFF_BUILD_TESTING "Enable building tests for blast" ON)
+option(ZLIB_PUFF_INSTALL "Enable installation of puff" ON)
+
+include(GNUInstallDirs)
+include(CMakePackageConfigHelpers)

 if(NOT DEFINED ZLIB_BUILD_PUFF)
     if(ZLIB_PUFF_BUILD_SHARED)
@@ -135,3 +139,58 @@ if(ZLIB_PUFF_BUILD_STATIC)
         endif(GCOV_EXECUTABLE)
     endif(ZLIB_PUFF_BUILD_TESTING)
 endif(ZLIB_PUFF_BUILD_STATIC)
+
+if(ZLIB_PUFF_INSTALL)
+    if(ZLIB_PUFF_BUILD_SHARED)
+        install(
+            TARGETS zlib_puff_puff
+            COMPONENT Runtime
+            EXPORT puffSharedExport
+            RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
+        install(
+            EXPORT puffSharedExport
+            FILE puff-shared.cmake
+            NAMESPACE PUFF::
+            DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/puff)
+
+        if(MSVC)
+            install(
+                FILES $<TARGET_PDB_FILE:zlib_puff_puff>
+                COMPONENT Development
+                DESTINATION ${CMAKE_INSTALL_BINDIR}
+                CONFIGURATIONS Debug OR RelWithDebInfo
+                OPTIONAL)
+        endif(MSVC)
+    endif(ZLIB_PUFF_BUILD_SHARED)
+
+    if(ZLIB_PUFF_BUILD_STATIC)
+        install(
+            TARGETS zlib_puff_puffStatic
+            COMPONENT Development
+            EXPORT puffStaticExport
+            ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
+        install(
+            EXPORT puffStaticExport
+            FILE puff-static.cmake
+            NAMESPACE PUFF::
+            DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/puff)
+    endif(ZLIB_PUFF_BUILD_STATIC)
+
+    configure_package_config_file(
+        ${puff_SOURCE_DIR}/puffConfig.cmake.in
+        ${puff_BINARY_DIR}/puffConfig.cmake
+        INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/puff)
+
+    write_basic_package_version_file(
+        "${puff_BINARY_DIR}/puffConfigVersion.cmake"
+        VERSION "${puff_VERSION}"
+        COMPATIBILITY AnyNewerVersion)
+
+    install(FILES ${puff_BINARY_DIR}/puffConfig.cmake
+                  ${puff_BINARY_DIR}/puffConfigVersion.cmake
+            DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/puff)
+    install(
+        FILES puff.h
+        COMPONENT Development
+        DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
+endif(ZLIB_PUFF_INSTALL)