From d5cc8b8eb0aa87886f8d6c23304244d861a91702 Mon Sep 17 00:00:00 2001
From: Cole Varner <[EMAIL REDACTED]>
Date: Fri, 9 Jul 2021 11:31:13 -0700
Subject: [PATCH] - updated zlib CMakeLists.txt to fix
https://github.com/madler/zlib/issues/218 - set ZLIB_INCLUDE_DIR from target
properties rather than hardcoding
---
CMakeLists.txt | 29 ++++++++++++++++-------------
external/zlib-1.2.11/CMakeLists.txt | 2 +-
2 files changed, 17 insertions(+), 14 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fb266bc..482bf41 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -51,20 +51,23 @@ if (SUPPORT_PNG)
set(HAVE_LD_VERSION_SCRIPT OFF CACHE BOOL "" FORCE)
target_compile_definitions(SDL2_image PRIVATE -DLOAD_PNG)
- if (NOT TARGET zlib)
- add_subdirectory(external/zlib-1.2.11 "${CMAKE_CURRENT_BINARY_DIR}/external/zlib-1.2.11")
- set(ZLIB_INCLUDE_DIR "external/zlib-1.2.11")
- set(SKIP_INSTALL_ALL ON) # SDL_image doesn't support installing currently
- if (BUILD_SHARED_LIBS)
- set(ZLIB_LIBRARY zlib)
- else()
- set(ZLIB_LIBRARY zlibstatic)
+ if (NOT TARGET zlib)
+ # if zlib not included from another source, add_subdirectory
+ add_subdirectory(external/zlib-1.2.11)
+
+ # libpng find_package(zlib) requires ZLIB_INCLUDE_DIR set
+ get_target_property(ZLIB_INCLUDE_DIR zlib INCLUDE_DIRECTORIES)
+
+ # libpng find_package(zlib) requires ZLIB_LIBRARY
+ if (BUILD_SHARED_LIBS)
+ set(ZLIB_LIBRARY zlib)
+ else()
+ set(ZLIB_LIBRARY zlibstatic)
+ endif()
+
+ # SDL_image doesn't support installing currently
+ set(SKIP_INSTALL_ALL ON)
endif()
- target_include_directories(${ZLIB_LIBRARY} PUBLIC
- "${ZLIB_INCLUDE_DIR}"
- "${CMAKE_CURRENT_BINARY_DIR}/external/zlib-1.2.11" # zconf.h is generated there
- )
- endif()
add_subdirectory(external/libpng-1.6.37)
include_directories(external/libpng-1.6.37)
diff --git a/external/zlib-1.2.11/CMakeLists.txt b/external/zlib-1.2.11/CMakeLists.txt
index 0fe939d..c323943 100644
--- a/external/zlib-1.2.11/CMakeLists.txt
+++ b/external/zlib-1.2.11/CMakeLists.txt
@@ -83,7 +83,7 @@ configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein
${ZLIB_PC} @ONLY)
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein
${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY)
-include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR})
+include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
#============================================================================