Skip to content

Commit b611a5e

Browse files
committed
Merged pull request "Add option to compile against shared Zlib": #389
2 parents 265ae83 + d0f4fd5 commit b611a5e

File tree

3 files changed

+34
-16
lines changed

3 files changed

+34
-16
lines changed

CMakeLists.txt

+10
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,14 @@ ENDIF()
4141
OPTION(CONFIG_BUILD_GLSLANG "Build glslangValidator from source instead of using the SDK" ${DEFAULT_BUILD_GLSLANG})
4242
OPTION(CONFIG_BUILD_IPO "Enable interprocedural optimizations" OFF)
4343
OPTION(CONFIG_BUILD_SHADER_DEBUG_INFO "Build shaders with debug info" OFF)
44+
OPTION(USE_SYSTEM_ZLIB "Prefer system ZLIB instead of the bundled one" OFF)
4445
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
4546

47+
# use dynamic zlib for steam runtime
48+
IF(CONFIG_LINUX_STEAM_RUNTIME_SUPPORT)
49+
SET(USE_SYSTEM_ZLIB ON)
50+
ENDIF()
51+
4652
include(CheckIPOSupported)
4753

4854
IF(CONFIG_BUILD_IPO)
@@ -152,6 +158,10 @@ IF(CONFIG_LINUX_PACKAGING_SUPPORT)
152158

153159
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libvulkan1")
154160

161+
IF(USE_SYSTEM_ZLIB)
162+
set(CPACK_DEBIAN_PACKAGE_DEPENDS "zlib1g")
163+
ENDIF()
164+
155165
set(CPACK_DEB_PACKAGE_COMPONENT ON)
156166
set(CPACK_DEB_COMPONENT_INSTALL ON)
157167
set(CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS ON)

extern/CMakeLists.txt

+6-6
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
# ZLIB
44
#
55

6-
if (NOT CONFIG_LINUX_STEAM_RUNTIME_SUPPORT)
6+
if(USE_SYSTEM_ZLIB)
7+
find_package(ZLIB REQUIRED)
8+
else()
79
add_subdirectory(zlib)
810
target_include_directories(zlibstatic PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/zlib> $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/zlib>)
911

@@ -43,7 +45,7 @@ if (IS_64_BIT)
4345
option(SDL_TEST OFF)
4446

4547
if (CONFIG_LINUX_STEAM_RUNTIME_SUPPORT)
46-
option(INPUT_TSLIB OFF)
48+
option(INPUT_TSLIB OFF)
4749
endif()
4850

4951
add_subdirectory(SDL2)
@@ -57,9 +59,7 @@ endif()
5759
#
5860
# CURL
5961
#
60-
6162
if(CONFIG_USE_CURL)
62-
6363
option(BUILD_CURL_EXE "" OFF)
6464
option(BUILD_SHARED_LIBS "" OFF)
6565
option(CURL_STATICLIB "" ON)
@@ -72,7 +72,7 @@ if(CONFIG_USE_CURL)
7272
set(CURL_CA_PATH "none" CACHE PATH "")
7373

7474
set(CMAKE_DEBUG_POSTFIX "" CACHE STRING "Override CMAKE_DEBUG_POSTFIX, which curl sets to '-d'")
75-
75+
7676
set(ZLIB_DIR "{CMAKE_CURRENT_SOURCE_DIR}/zlib")
7777

7878
add_subdirectory(curl)
@@ -111,4 +111,4 @@ if (IS_64_BIT)
111111
set_target_properties(OpenAL PROPERTIES FOLDER extern/openal-soft)
112112
set_target_properties(common PROPERTIES FOLDER extern/openal-soft)
113113
set_target_properties(ex-common PROPERTIES FOLDER extern/openal-soft)
114-
endif()
114+
endif()

src/CMakeLists.txt

+18-10
Original file line numberDiff line numberDiff line change
@@ -549,25 +549,33 @@ TARGET_INCLUDE_DIRECTORIES(game PRIVATE ../inc)
549549

550550
IF(TARGET client)
551551
TARGET_INCLUDE_DIRECTORIES(client PRIVATE ../inc)
552-
TARGET_INCLUDE_DIRECTORIES(client PRIVATE "${ZLIB_INCLUDE_DIRS}")
552+
IF(NOT USE_SYSTEM_ZLIB)
553+
TARGET_INCLUDE_DIRECTORIES(client PRIVATE "${ZLIB_INCLUDE_DIRS}")
554+
ENDIF()
553555
ENDIF()
554556

555557
TARGET_INCLUDE_DIRECTORIES(server PRIVATE ../inc)
556-
TARGET_INCLUDE_DIRECTORIES(server PRIVATE "${ZLIB_INCLUDE_DIRS}")
557558

558-
# Use dynamic zlib for steam runtime
559-
if (CONFIG_LINUX_STEAM_RUNTIME_SUPPORT)
560-
IF(TARGET client)
561-
TARGET_LINK_LIBRARIES(client SDL2main SDL2-static z)
562-
ENDIF()
559+
if(NOT USE_SYSTEM_ZLIB)
560+
TARGET_INCLUDE_DIRECTORIES(server PRIVATE "${ZLIB_INCLUDE_DIRS}")
561+
endif()
562+
563+
if(TARGET client)
564+
TARGET_LINK_LIBRARIES(client SDL2main SDL2-static)
565+
endif()
566+
567+
if(USE_SYSTEM_ZLIB)
563568
TARGET_LINK_LIBRARIES(server z)
564569
TARGET_LINK_LIBRARIES(game z)
570+
if(TARGET client)
571+
TARGET_LINK_LIBRARIES(client z)
572+
endif()
565573
else()
566-
IF(TARGET client)
567-
TARGET_LINK_LIBRARIES(client SDL2main SDL2-static zlibstatic)
568-
ENDIF()
569574
TARGET_LINK_LIBRARIES(server zlibstatic)
570575
TARGET_LINK_LIBRARIES(game zlibstatic)
576+
if(TARGET client)
577+
TARGET_LINK_LIBRARIES(client zlibstatic)
578+
endif()
571579
endif()
572580

573581
IF(UNIX)

0 commit comments

Comments
 (0)