SDL_image: cmake: support embedding a static zlib library in libpng

From b19e40f0b9069fe6cad851c18a86d8749d70f51f Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Fri, 2 Jan 2026 02:03:07 +0100
Subject: [PATCH] cmake: support embedding a static zlib library in libpng

---
 CMakeLists.txt  | 11 +++++------
 external/libpng |  2 +-
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 446d1592..330117bb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -217,11 +217,7 @@ if(SDLIMAGE_VENDORED AND SDLIMAGE_PNG_VENDORED)
 else()
     set(SDLIMAGE_ZLIB_VENDORED OFF)
 endif()
-if(SDLIMAGE_PNG_SHARED)
-    set(SDLIMAGE_ZLIB_SHARED ON)
-else()
-    set(SDLIMAGE_ZLIB_SHARED OFF)
-endif()
+cmake_dependent_option(SDLIMAGE_ZLIB_SHARED "Build zlib as a shared library" "${SDLIMAGE_PNG_SHARED}" SDLIMAGE_ZLIB_VENDORED OFF)
 
 # Save BUILD_SHARED_LIBS variable
 set(SDLIMAGE_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})
@@ -455,12 +451,15 @@ if(SDLIMAGE_ZLIB)
         if(NOT TARGET ZLIB::ZLIB)
             add_library(ZLIB::ZLIB ALIAS ${ZLIB_LIBRARY})
         endif()
+        if(NOT TARGET ZLIB::zlibstatic)
+            add_library(ZLIB::zlibstatic ALIAS ${ZLIB_LIBRARY})
+        endif()
         # ZLIB_LIBRARIES variable is used by vendored libpng
         set(ZLIB_LIBRARIES "${ZLIB_LIBRARY}")
         # ZLIB_INCLUDE_DIRS variable is used by vendored libpng
         set(ZLIB_INCLUDE_DIRS "${ZLIB_INCLUDE_DIR}")
         target_include_directories(${ZLIB_LIBRARY} INTERFACE $<BUILD_INTERFACE:${ZLIB_INCLUDE_DIRS}>)
-        if(SDLIMAGE_ZLIB_SHARED OR NOT SDLIMAGE_BUILD_SHARED_LIBS)
+        if(SDLIMAGE_ZLIB_SHARED OR SDLIMAGE_PNG AND NOT SDLIMAGE_PNG_SHARED)
             list(APPEND INSTALL_EXTRA_TARGETS ${ZLIB_LIBRARY})
         endif()
         set_target_properties(${ZLIB_LIBRARY} PROPERTIES EXPORT_NAME external_zlib)
diff --git a/external/libpng b/external/libpng
index ddf24cd7..bed74863 160000
--- a/external/libpng
+++ b/external/libpng
@@ -1 +1 @@
-Subproject commit ddf24cd74f8213e7a057c23e8c5c2135e1d0fad9
+Subproject commit bed748633a146aa6cfea2a959f97e33e5d1451ca