From aa4aced94dc9ec24bf305a36e09aa8809e478b49 Mon Sep 17 00:00:00 2001 From: KimLS Date: Mon, 24 Jun 2019 17:35:33 -0700 Subject: [PATCH] Zlib ng optional dependency --- .gitmodules | 3 +++ CMakeLists.txt | 30 ++++++++++++++++++++++++++++-- submodules/zlibng | 1 + 3 files changed, 32 insertions(+), 2 deletions(-) create mode 160000 submodules/zlibng diff --git a/.gitmodules b/.gitmodules index c9c3988cb..ba8867a9a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,3 +16,6 @@ [submodule "submodules/recastnavigation"] path = submodules/recastnavigation url = https://github.com/EQEmu/recastnavigation.git +[submodule "submodules/zlibng"] + path = submodules/zlibng + url = https://github.com/zlib-ng/zlib-ng.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 2445c9e17..e9d19ccee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -81,9 +81,9 @@ ADD_DEFINITIONS(-DGLM_FORCE_CTOR_INIT) ADD_DEFINITIONS(-DGLM_ENABLE_EXPERIMENTAL) #Find everything we need -FIND_PACKAGE(ZLIB REQUIRED) FIND_PACKAGE(MySQL REQUIRED) FIND_PACKAGE(Boost REQUIRED) +FIND_PACKAGE(ZLIB) FIND_PACKAGE(OpenSSL) FIND_PACKAGE(Lua51) FIND_PACKAGE(PerlLibs) @@ -94,6 +94,12 @@ MESSAGE(STATUS "**************************************************") MESSAGE(STATUS "* Library Detection *") MESSAGE(STATUS "**************************************************") +IF(ZLIB_FOUND) + MESSAGE(STATUS "* ZLIB: FOUND *") +ELSE() + MESSAGE(STATUS "* ZLIB: MISSING *") +ENDIF() + IF(OpenSSL_FOUND) MESSAGE(STATUS "* OpenSSL: FOUND *") ELSE() @@ -140,6 +146,21 @@ IF(UNIX) SET(SERVER_LIBS ${SERVER_LIBS} "uuid") ENDIF() +IF(ZLIB_FOUND) + OPTION(EQEMU_BUILD_ZLIB "Build internal version of zlib." OFF) + + IF(EQEMU_BUILD_ZLIB) + INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/zlibng") + SET(SERVER_LIBS ${SERVER_LIBS} "zlibstatic") + ELSE() + INCLUDE_DIRECTORIES(SYSTEM "${ZLIB_INCLUDE_DIRS}") + SET(SERVER_LIBS ${SERVER_LIBS} ${ZLIB_LIBRARY}) + ENDIF() +ELSE() + INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/zlibng") + SET(SERVER_LIBS ${SERVER_LIBS} "zlibstatic") +ENDIF() + IF(PerlLibs_FOUND) OPTION(EQEMU_BUILD_PERL "Build Perl parser." ON) IF(EQEMU_BUILD_PERL) @@ -207,7 +228,6 @@ IF(SODIUM_FOUND AND EQEMU_BUILD_LOGIN) ENDIF() ENDIF() -INCLUDE_DIRECTORIES(SYSTEM "${ZLIB_INCLUDE_DIRS}") INCLUDE_DIRECTORIES(SYSTEM "${MySQL_INCLUDE_DIR}") INCLUDE_DIRECTORIES(SYSTEM "${Boost_INCLUDE_DIRS}") INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/glm") @@ -227,6 +247,12 @@ IF(EQEMU_BUILD_SERVER OR EQEMU_BUILD_LOGIN OR EQEMU_BUILD_TESTS OR EQEMU_BUILD_H ADD_SUBDIRECTORY(submodules/fmt) ADD_SUBDIRECTORY(submodules/libuv) + IF(EQEMU_BUILD_ZLIB) + SET(ZLIB_COMPAT ON CACHE BOOL "Compile with zlib compatible API") + SET(ZLIB_ENABLE_TESTS OFF CACHE BOOL "Build test binaries") + ADD_SUBDIRECTORY(submodules/zlibng) + ENDIF() + SET(RECASTNAVIGATION_DEMO OFF CACHE BOOL "Build demo") SET(RECASTNAVIGATION_TESTS OFF CACHE BOOL "Build tests") SET(RECASTNAVIGATION_EXAMPLES OFF CACHE BOOL "Build examples") diff --git a/submodules/zlibng b/submodules/zlibng new file mode 160000 index 000000000..6f6bdcb47 --- /dev/null +++ b/submodules/zlibng @@ -0,0 +1 @@ +Subproject commit 6f6bdcb47fecf7bb672fe621676354b4af3cb06b