From 1b7e854f5f728e78ef3fb406a3c875ed808bec96 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Sun, 29 Oct 2023 19:05:40 -0500 Subject: [PATCH] added zlib --- cmake/boost.cmake | 6 +++- cmake/librepertory.cmake | 7 ++-- cmake/zlib.cmake | 69 +++++++++++++++++----------------------- 3 files changed, 37 insertions(+), 45 deletions(-) diff --git a/cmake/boost.cmake b/cmake/boost.cmake index 562e82d6..6d8c6bf4 100644 --- a/cmake/boost.cmake +++ b/cmake/boost.cmake @@ -31,6 +31,9 @@ if (UNIX OR MINGW) linkflags=-std=c++${CMAKE_CXX_STANDARD} threading=multi variant=${CMAKE_BUILD_TYPE_LOWER} + -sZLIB_BINARY=zlibstatic${DEBUG_EXTRA} + -sZLIB_LIBPATH="${EXTERNAL_BUILD_ROOT}/lib" + -sZLIB_INCLUDE="${EXTERNAL_BUILD_ROOT}/include" ) if (MINGW) @@ -124,7 +127,6 @@ elseif(MSVC) ${BOOST_COMMON_ARGS} ) - add_dependencies(boost_project zlib_project) set(BOOST_ROOT ${BOOST_BUILD_ROOT}/src/boost_project) set(Boost_INCLUDE_DIR ${EXTERNAL_BUILD_ROOT}/include/boost-${BOOST_VERSION_DLL}) set(Boost_LIBRARIES @@ -135,3 +137,5 @@ elseif(MSVC) ${EXTERNAL_BUILD_ROOT}/lib/libboost_system-vc${BOOST_MSVC_TOOLSET_DLL}-mt-${BOOST_DEBUG_EXTRA}${BOOST_DLL_ARCH}-${BOOST_VERSION_DLL}.lib ) endif() + +add_dependencies(boost_project zlib_project) diff --git a/cmake/librepertory.cmake b/cmake/librepertory.cmake index 23337b05..7bf3d800 100644 --- a/cmake/librepertory.cmake +++ b/cmake/librepertory.cmake @@ -17,16 +17,13 @@ add_dependencies(librepertory curl_project libsodium_project rocksdb_project + zlib_project ) if (LINUX) add_dependencies(librepertory libuuid_project) endif() -if (LINUX OR MINGW OR MACOS) +if (NOT WIN32) add_dependencies(librepertory openssl_project) endif() - -if (MSVC OR MINGW) - add_dependencies(librepertory zlib_project) -endif() diff --git a/cmake/zlib.cmake b/cmake/zlib.cmake index c76a8a9f..af808f2e 100644 --- a/cmake/zlib.cmake +++ b/cmake/zlib.cmake @@ -1,42 +1,33 @@ -if (MSVC OR MINGW) - set(ZLIB_PROJECT_NAME zlib_${ZLIB_VERSION}) - set(ZLIB_BUILD_ROOT ${EXTERNAL_BUILD_ROOT}/builds/${ZLIB_PROJECT_NAME}) +set(ZLIB_PROJECT_NAME zlib_${ZLIB_VERSION}) +set(ZLIB_BUILD_ROOT ${EXTERNAL_BUILD_ROOT}/builds/${ZLIB_PROJECT_NAME}) +set(ZLIB_CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${EXTERNAL_BUILD_TYPE} + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} + -DCMAKE_GENERATOR=${CMAKE_GENERATOR} + -DCMAKE_INSTALL_PREFIX=${EXTERNAL_BUILD_ROOT} + -DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} + -DCMAKE_SHARED_LINKER_FLAGS=${CMAKE_SHARED_LINKER_FLAGS} +) + +if (CMAKE_TOOLCHAIN_FILE) set(ZLIB_CMAKE_ARGS - -DCMAKE_BUILD_TYPE=${EXTERNAL_BUILD_TYPE} - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - -DCMAKE_INSTALL_PREFIX=${EXTERNAL_BUILD_ROOT} - -DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} - -DCMAKE_SHARED_LINKER_FLAGS=${CMAKE_SHARED_LINKER_FLAGS} + ${ZLIB_CMAKE_ARGS} + -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} ) - - if (MINGW AND CMAKE_TOOLCHAIN_FILE) - set(ZLIB_CMAKE_ARGS - ${ZLIB_CMAKE_ARGS} - -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} - ) - endif() - - ExternalProject_Add(zlib_project - DOWNLOAD_NO_PROGRESS 1 - URL https://github.com/madler/zlib/archive/${ZLIB_VERSION}.tar.gz - PREFIX ${ZLIB_BUILD_ROOT} - CMAKE_ARGS ${ZLIB_CMAKE_ARGS} - ) - - if (MINGW) - set(ZLIB_LIBRARIES ${EXTERNAL_BUILD_ROOT}/lib/libzlibstatic${CMAKE_STATIC_LIBRARY_SUFFIX}) - else() - set(ZLIB_LIBRARIES ${EXTERNAL_BUILD_ROOT}/lib/zlibstatic${DEBUG_EXTRA}${CMAKE_STATIC_LIBRARY_SUFFIX}) - endif() -elseif(LINUX) - find_library(ZLIB_LIBRARIES NO_CACHE NAMES z) - if (NOT ZLIB_LIBRARIES) - message(FATAL_ERROR "'zlib' not found") - endif() - - if (REPERTORY_MUSL) - set(ZLIB_LIBRARIES libz.a) - endif() +endif() + +ExternalProject_Add(zlib_project + DOWNLOAD_NO_PROGRESS 1 + URL https://github.com/madler/zlib/archive/${ZLIB_VERSION}.tar.gz + PREFIX ${ZLIB_BUILD_ROOT} + CMAKE_ARGS ${ZLIB_CMAKE_ARGS} +) + +if (MSVC) + set(ZLIB_LIBRARIES ${EXTERNAL_BUILD_ROOT}/lib/zlibstatic${DEBUG_EXTRA}${CMAKE_STATIC_LIBRARY_SUFFIX}) +elseif(MINGW) + set(ZLIB_LIBRARIES ${EXTERNAL_BUILD_ROOT}/lib/libzlibstatic${CMAKE_STATIC_LIBRARY_SUFFIX}) +else() + set(ZLIB_LIBRARIES ${EXTERNAL_BUILD_ROOT}/lib/libz${CMAKE_STATIC_LIBRARY_SUFFIX}) endif()