# HG changeset patch # User Sebastien Jodogne # Date 1773682687 -3600 # Node ID 91f2ac41660158b2a9f711c2f54e003d4c86030e # Parent 7c6c02b669a80d54123257f83474987bdc746ae0 added cmake option USE_SYSTEM_MINIZIP diff -r 7c6c02b669a8 -r 91f2ac416601 NEWS --- a/NEWS Mon Mar 16 14:52:20 2026 +0100 +++ b/NEWS Mon Mar 16 18:38:07 2026 +0100 @@ -50,6 +50,7 @@ https://orthanc.uclouvain.be/bugs/show_bug.cgi?id=255 * Save the jobs registry in DB only if it has changed. https://discourse.orthanc-server.org/t/frequent-idle-messages-between-postgres-and-orthanc/6406 +* New CMake option: "USE_SYSTEM_MINIZIP" to use the system-wide version of minizip * Upgraded dependencies for static builds: - boost 1.89.0 - dcmtk 3.7.0 diff -r 7c6c02b669a8 -r 91f2ac416601 OrthancFramework/Resources/CMake/MinizipConfiguration.cmake --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/OrthancFramework/Resources/CMake/MinizipConfiguration.cmake Mon Mar 16 18:38:07 2026 +0100 @@ -0,0 +1,51 @@ +# Orthanc - A Lightweight, RESTful DICOM Store +# Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics +# Department, University Hospital of Liege, Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2026 Orthanc Team SRL, Belgium +# Copyright (C) 2021-2026 Sebastien Jodogne, ICTEAM UCLouvain, Belgium +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public License +# as published by the Free Software Foundation, either version 3 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program. If not, see +# . + + +if (NOT ENABLE_ZLIB OR ORTHANC_SANDBOXED) + message(FATAL_ERROR "This file cannot be used if zlib is disabled or if targeting WebAssembly") +endif() + +if (STATIC_BUILD OR NOT USE_SYSTEM_MINIZIP) + add_definitions(-DORTHANC_USE_SYSTEM_MINIZIP=0) + + list(APPEND ORTHANC_CORE_SOURCES_DEPENDENCIES + ${CMAKE_CURRENT_LIST_DIR}/../../Resources/ThirdParty/minizip/ioapi.c + ${CMAKE_CURRENT_LIST_DIR}/../../Resources/ThirdParty/minizip/unzip.c + ${CMAKE_CURRENT_LIST_DIR}/../../Resources/ThirdParty/minizip/zip.c + ) + +else() + add_definitions(-DORTHANC_USE_SYSTEM_MINIZIP=1) + + CHECK_INCLUDE_FILE_CXX(minizip/zip.h HAVE_MINIZIP_H) + if (NOT HAVE_MINIZIP_H) + message(FATAL_ERROR "Please install the libminizip-dev package") + endif() + + CHECK_LIBRARY_EXISTS(minizip "zipOpen2_64" "" HAVE_MINIZIP_LIB) + if (NOT HAVE_MINIZIP_LIB) + message(FATAL_ERROR "Please install the libminizip-dev package") + endif() + + link_libraries(minizip) + +endif() diff -r 7c6c02b669a8 -r 91f2ac416601 OrthancFramework/Resources/CMake/OrthancFrameworkConfiguration.cmake --- a/OrthancFramework/Resources/CMake/OrthancFrameworkConfiguration.cmake Mon Mar 16 14:52:20 2026 +0100 +++ b/OrthancFramework/Resources/CMake/OrthancFrameworkConfiguration.cmake Mon Mar 16 18:38:07 2026 +0100 @@ -753,12 +753,8 @@ ) if (ENABLE_ZLIB AND NOT ORTHANC_SANDBOXED) - list(APPEND ORTHANC_CORE_SOURCES_DEPENDENCIES - # This is the minizip distribution to create/decode ZIP files using zlib - ${CMAKE_CURRENT_LIST_DIR}/../../Resources/ThirdParty/minizip/ioapi.c - ${CMAKE_CURRENT_LIST_DIR}/../../Resources/ThirdParty/minizip/unzip.c - ${CMAKE_CURRENT_LIST_DIR}/../../Resources/ThirdParty/minizip/zip.c - ) + # This is the minizip distribution to create/decode ZIP files using zlib + include(${CMAKE_CURRENT_LIST_DIR}/MinizipConfiguration.cmake) endif() diff -r 7c6c02b669a8 -r 91f2ac416601 OrthancFramework/Resources/CMake/OrthancFrameworkParameters.cmake --- a/OrthancFramework/Resources/CMake/OrthancFrameworkParameters.cmake Mon Mar 16 14:52:20 2026 +0100 +++ b/OrthancFramework/Resources/CMake/OrthancFrameworkParameters.cmake Mon Mar 16 18:38:07 2026 +0100 @@ -69,6 +69,7 @@ set(USE_SYSTEM_LIBP11 OFF CACHE BOOL "Use the system version of libp11 (PKCS#11 wrapper library)") set(USE_SYSTEM_LIBPNG ON CACHE BOOL "Use the system version of libpng") set(USE_SYSTEM_LUA ON CACHE BOOL "Use the system version of Lua") +set(USE_SYSTEM_MINIZIP OFF CACHE BOOL "Use the system version minizip (new in Orthanc 1.12.11)") set(USE_SYSTEM_MONGOOSE ON CACHE BOOL "Use the system version of Mongoose") set(USE_SYSTEM_OPENSSL ON CACHE BOOL "Use the system version of OpenSSL") set(USE_SYSTEM_PROTOBUF ON CACHE BOOL "Use the system version of Google Protocol Buffers") diff -r 7c6c02b669a8 -r 91f2ac416601 OrthancFramework/Sources/Compression/ZipReader.cpp --- a/OrthancFramework/Sources/Compression/ZipReader.cpp Mon Mar 16 14:52:20 2026 +0100 +++ b/OrthancFramework/Sources/Compression/ZipReader.cpp Mon Mar 16 18:38:07 2026 +0100 @@ -28,10 +28,20 @@ #define NOMINMAX #endif +#if !defined(ORTHANC_USE_SYSTEM_MINIZIP) +# error The macro ORTHANC_USE_SYSTEM_MINIZIP must be defined +#endif + #include "ZipReader.h" +#if ORTHANC_USE_SYSTEM_MINIZIP == 1 +# include +#else +# include "../../Resources/ThirdParty/minizip/unzip.h" +#endif + + #include "../OrthancException.h" -#include "../../Resources/ThirdParty/minizip/unzip.h" #if ORTHANC_SANDBOXED != 1 # include "../SystemToolbox.h" diff -r 7c6c02b669a8 -r 91f2ac416601 OrthancFramework/Sources/Compression/ZipWriter.cpp --- a/OrthancFramework/Sources/Compression/ZipWriter.cpp Mon Mar 16 14:52:20 2026 +0100 +++ b/OrthancFramework/Sources/Compression/ZipWriter.cpp Mon Mar 16 18:38:07 2026 +0100 @@ -28,13 +28,23 @@ #define NOMINMAX #endif +#if !defined(ORTHANC_USE_SYSTEM_MINIZIP) +# error The macro ORTHANC_USE_SYSTEM_MINIZIP must be defined +#endif + #include "ZipWriter.h" + #include #include #include -#include "../../Resources/ThirdParty/minizip/zip.h" +#if ORTHANC_USE_SYSTEM_MINIZIP == 1 +# include +#else +# include "../../Resources/ThirdParty/minizip/zip.h" +#endif + #include "../Logging.h" #include "../OrthancException.h" #include "../SystemToolbox.h"