diff --git a/cmake/ConfigureOpenGeode.cmake b/cmake/ConfigureOpenGeode.cmake index 3355d6ba1..9746ea9e4 100644 --- a/cmake/ConfigureOpenGeode.cmake +++ b/cmake/ConfigureOpenGeode.cmake @@ -57,6 +57,7 @@ ExternalProject_Add(opengeode -DPYBIND11_PYTHON_VERSION:STRING=${PYTHON_VERSION} -DCMAKE_INSTALL_PREFIX:PATH=${OpenGeode_PATH_INSTALL} -DJSON_INSTALL_PREFIX:PATH=${JSON_INSTALL_PREFIX} + -DZLIB_INSTALL_PREFIX:PATH=${ZLIB_INSTALL_PREFIX} BINARY_DIR ${OpenGeode_PATH_BIN} DEPENDS abseil @@ -68,6 +69,7 @@ ExternalProject_Add(opengeode nanoflann spdlog json + zlib ${bindings} ) diff --git a/cmake/ConfigureZlib.cmake b/cmake/ConfigureZlib.cmake new file mode 100644 index 000000000..23c0ef565 --- /dev/null +++ b/cmake/ConfigureZlib.cmake @@ -0,0 +1,47 @@ +# Copyright (c) 2019 - 2026 Geode-solutions +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +set(ZLIB_PATH ${PROJECT_BINARY_DIR}/third_party/zlib) +set(ZLIB_INSTALL_PREFIX ${ZLIB_PATH}/install) +ExternalProject_Add(zlib + PREFIX ${ZLIB_PATH} + SOURCE_DIR ${ZLIB_PATH}/src + BINARY_DIR ${ZLIB_PATH}/build + STAMP_DIR ${ZLIB_PATH}/stamp + GIT_REPOSITORY https://github.com/zlib-ng/zlib-ng + GIT_TAG 2.2.1 + GIT_SHALLOW ON + GIT_PROGRESS ON + CMAKE_GENERATOR ${CMAKE_GENERATOR} + CMAKE_GENERATOR_PLATFORM ${CMAKE_GENERATOR_PLATFORM} + CMAKE_ARGS + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_INSTALL_MESSAGE=LAZY + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DBUILD_SHARED_LIBS:BOOL=OFF + CMAKE_CACHE_ARGS + -DCMAKE_POLICY_DEFAULT_CMP0091=NEW + -DCMAKE_MSVC_RUNTIME_LIBRARY:STRING=${CMAKE_MSVC_RUNTIME_LIBRARY} + -DZLIB_ENABLE_TESTS:BOOL=OFF + -DZLIB_COMPAT:BOOL=ON + -DWITH_NEW_STRATEGIES:BOOL=OFF + -DCMAKE_INSTALL_PREFIX:PATH=${ZLIB_INSTALL_PREFIX} + -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON +) diff --git a/cmake/OpenGeode.cmake b/cmake/OpenGeode.cmake index 164304187..20895a6db 100644 --- a/cmake/OpenGeode.cmake +++ b/cmake/OpenGeode.cmake @@ -36,6 +36,7 @@ find_package(minizip-ng REQUIRED CONFIG NO_DEFAULT_PATH PATHS ${MINIZIP_INSTALL_ find_package(nanoflann REQUIRED CONFIG NO_DEFAULT_PATH PATHS ${NANOFLANN_INSTALL_PREFIX}) find_package(spdlog REQUIRED CONFIG NO_DEFAULT_PATH PATHS ${SPDLOG_INSTALL_PREFIX}) find_package(nlohmann_json REQUIRED CONFIG NO_DEFAULT_PATH PATHS ${JSON_INSTALL_PREFIX}) +find_package(zlib REQUIRED CONFIG NO_DEFAULT_PATH PATHS ${ZLIB_INSTALL_PREFIX}) find_package(Threads REQUIRED) # Install OpenGeode third-parties @@ -47,6 +48,7 @@ install( ${GDAL_INSTALL_PREFIX}/ ${PROJ_INSTALL_PREFIX}/ ${JSON_INSTALL_PREFIX}/ + ${ZLIB_INSTALL_PREFIX}/ DESTINATION . COMPONENT diff --git a/cmake/SuperBuild.cmake b/cmake/SuperBuild.cmake index 463b354b4..6895bd28e 100644 --- a/cmake/SuperBuild.cmake +++ b/cmake/SuperBuild.cmake @@ -59,6 +59,7 @@ include(${PROJECT_SOURCE_DIR}/cmake/ConfigureSQLite.cmake) include(${PROJECT_SOURCE_DIR}/cmake/ConfigurePROJ.cmake) include(${PROJECT_SOURCE_DIR}/cmake/ConfigureGDAL.cmake) include(${PROJECT_SOURCE_DIR}/cmake/ConfigureJson.cmake) +include(${PROJECT_SOURCE_DIR}/cmake/ConfigureZlib.cmake) if(OPENGEODE_WITH_PYTHON OR INCLUDE_PYBIND11) include(${PROJECT_SOURCE_DIR}/cmake/ConfigurePybind11.cmake)