Commit 1956b5a for zlib

commit 1956b5a89f24a11647edf1c2625b2830cd1e16bc
Author: Vollstrecker <werner@vollstreckernet.de>
Date:   Wed Dec 31 13:56:08 2025 +0100

    CMake: Moved everything to functions for consistency.

diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt
index 13fe2d4..18f86c4 100644
--- a/contrib/CMakeLists.txt
+++ b/contrib/CMakeLists.txt
@@ -1,44 +1,39 @@
-option(ZLIB_BUILD_ADA "Enable building of Ada bindings" OFF)
-option(ZLIB_BUILD_BLAST "Enable building of blast binary" OFF)
-option(ZLIB_BUILD_IOSTREAM3 "Build with IOStream C++ bindings V3" OFF)
-option(ZLIB_BUILD_MINIZIP "Enable building libminizip contrib library" OFF)
-option(ZLIB_WITH_GVMAT64
-       "Enable an optiomized longest_match for 32 bits x86_64"
-       OFF)
-option(ZLIB_WITH_INFBACK9 "Build with support for method 9 deflate" OFF)
-
-if(ZLIB_BUILD_ADA)
-    set(ZLIB_ADA_BUILD_SHARED ${ZLIB_BUILD_SHARED})
-    set(ZLIB_ADA_BUILD_STATIC ${ZLIB_BUILD_STATIC})
-    set(ZLIB_ADA_BUILD_TESTING ${ZLIB_BUILD_TESTING})
-    add_subdirectory(ada/)
-endif(ZLIB_BUILD_ADA)
-
-if(ZLIB_BUILD_BLAST)
-    set(ZLIB_BLAST_BUILD_SHARED ${ZLIB_BUILD_SHARED})
-    set(ZLIB_BLAST_BUILD_STATIC ${ZLIB_BUILD_STATIC})
-    set(ZLIB_BLAST_BUILD_TESTING ${ZLIB_BUILD_TESTING})
-    add_subdirectory(blast/)
-endif(ZLIB_BUILD_BLAST)
-
-if(ZLIB_BUILD_MINIZIP)
-    set(MINIZIP_BUILD_SHARED ${ZLIB_BUILD_SHARED})
-    set(MINIZIP_BUILD_STATIC ${ZLIB_BUILD_STATIC})
-    set(MINIZIP_BUILD_TESTING ${ZLIB_BUILD_TESTING})
-    add_subdirectory(minizip/)
-endif(ZLIB_BUILD_MINIZIP)
-
-if(ZLIB_WITH_GVMAT64)
-   add_subdirectory(gcc_gvmat64/)
-endif(ZLIB_WITH_GVMAT64)
-
-if(ZLIB_WITH_INFBACK9)
-   add_subdirectory(infback9/)
-endif(ZLIB_WITH_INFBACK9)
-
-if(ZLIB_BUILD_IOSTREAM3)
-    set(ZLIB_IOSTREAM3_BUILD_SHARED ${ZLIB_BUILD_SHARED})
-    set(ZLIB_IOSTREAM3_BUILD_STATIC ${ZLIB_BUILD_STATIC})
-    set(ZLIB_IOSTREAM3_TESTING ${ZLIB_BUILD_TESTING})
-    add_subdirectory(iostream3/)
-endif(ZLIB_BUILD_IOSTREAM3)
+function(zlib_add_contrib_lib name description dir)
+    option(ZLIB_BUILD_${name} "Enable building of ${description}" OFF)
+
+    if(ZLIB_BUILD_${name})
+        if(NOT DEFINED ZLIB_${name}_BUILD_SHARED)
+            set(ZLIB_${name}_BUILD_SHARED ${ZLIB_BUILD_SHARED})
+        endif(NOT DEFINED ZLIB_${name}_BUILD_SHARED)
+
+        if(NOT DEFINED ZLIB_${name}_BUILD_STATIC)
+            set(ZLIB_${name}_BUILD_STATIC ${ZLIB_BUILD_STATIC})
+        endif(NOT DEFINED ZLIB_${name}_BUILD_STATIC)
+
+        if(NOT DEFINED ZLIB_${name}_BUILD_TESTING)
+            set(ZLIB_${name}_BUILD_TESTING ${ZLIB_BUILD_TESTING})
+        endif(NOT DEFINED ZLIB_${name}_BUILD_TESTING)
+
+        add_subdirectory(${dir}/)
+    endif(ZLIB_BUILD_${name})
+endfunction(zlib_add_contrib_lib name description dir)
+
+function(zlib_add_contrib_feature name description dir)
+    option(ZLIB_WITH_${name}
+           "Enable build ${description}"
+           OFF)
+
+    if(ZLIB_WITH_${name})
+        add_subdirectory(${dir}/)
+    endif(ZLIB_WITH_${name})
+endfunction(zlib_add_contrib_feature name description dir)
+
+zlib_add_contrib_feature("GVMAT64"
+    "of an optimized longest_match for 32 bits x86_64"
+    gcc_gvmat64)
+
+zlib_add_contrib_feature(INFBACK9 "with support for method 9 deflate" infback9)
+zlib_add_contrib_lib(ADA "Ada bindings" ada)
+zlib_add_contrib_lib(BLAST "blast binary" blast)
+zlib_add_contrib_lib(IOSTREAM3 "IOStream C++ bindings V3" iostream3)
+zlib_add_contrib_lib(MINIZIP "minizip library" minizip)