# HG changeset patch # User Sebastien Jodogne # Date 1522229057 -7200 # Node ID 91ee08d986f9bd70f40b23587bb32f380c16fbab # Parent 99116ed6f38c0b61273e8e62d5a2f24a25dd66e4 possibility to disable zlib support in the Orthanc framework diff -r 99116ed6f38c -r 91ee08d986f9 CMakeLists.txt --- a/CMakeLists.txt Mon Mar 26 18:31:40 2018 +0200 +++ b/CMakeLists.txt Wed Mar 28 11:24:17 2018 +0200 @@ -22,6 +22,7 @@ set(ENABLE_SQLITE ON) set(ENABLE_WEB_CLIENT ON) set(ENABLE_WEB_SERVER ON) +set(ENABLE_ZLIB ON) set(HAS_EMBEDDED_RESOURCES ON) diff -r 99116ed6f38c -r 91ee08d986f9 Core/Compression/DeflateBaseCompressor.h --- a/Core/Compression/DeflateBaseCompressor.h Mon Mar 26 18:31:40 2018 +0200 +++ b/Core/Compression/DeflateBaseCompressor.h Wed Mar 28 11:24:17 2018 +0200 @@ -35,6 +35,15 @@ #include "IBufferCompressor.h" +#if !defined(ORTHANC_ENABLE_ZLIB) +# error The macro ORTHANC_ENABLE_ZLIB must be defined +#endif + +#if ORTHANC_ENABLE_ZLIB != 1 +# error ZLIB support must be enabled to include this file +#endif + + #include namespace Orthanc diff -r 99116ed6f38c -r 91ee08d986f9 Core/Compression/ZipWriter.h --- a/Core/Compression/ZipWriter.h Mon Mar 26 18:31:40 2018 +0200 +++ b/Core/Compression/ZipWriter.h Wed Mar 28 11:24:17 2018 +0200 @@ -33,6 +33,15 @@ #pragma once +#if !defined(ORTHANC_ENABLE_ZLIB) +# error The macro ORTHANC_ENABLE_ZLIB must be defined +#endif + +#if ORTHANC_ENABLE_ZLIB != 1 +# error ZLIB support must be enabled to include this file +#endif + + #include #include #include diff -r 99116ed6f38c -r 91ee08d986f9 Resources/CMake/DcmtkConfiguration.cmake --- a/Resources/CMake/DcmtkConfiguration.cmake Mon Mar 26 18:31:40 2018 +0200 +++ b/Resources/CMake/DcmtkConfiguration.cmake Wed Mar 28 11:24:17 2018 +0200 @@ -102,8 +102,13 @@ IF (CMAKE_CROSSCOMPILING) if (CMAKE_COMPILER_IS_GNUCXX AND - ${CMAKE_SYSTEM_NAME} STREQUAL "Windows") # MinGW + CMAKE_SYSTEM_NAME STREQUAL "Windows") # MinGW SET(C_CHAR_UNSIGNED 1 CACHE INTERNAL "Whether char is unsigned.") + + elseif(CMAKE_SYSTEM_NAME STREQUAL "Emscripten") # WebAssembly or asm.js + SET(C_CHAR_UNSIGNED 0 CACHE INTERNAL "Whether char is unsigned.") + SET(SIZEOF_VOID_P 4 CACHE INTERNAL "") + else() message(FATAL_ERROR "Support your platform here") endif() diff -r 99116ed6f38c -r 91ee08d986f9 Resources/CMake/OrthancFrameworkConfiguration.cmake --- a/Resources/CMake/OrthancFrameworkConfiguration.cmake Mon Mar 26 18:31:40 2018 +0200 +++ b/Resources/CMake/OrthancFrameworkConfiguration.cmake Wed Mar 28 11:24:17 2018 +0200 @@ -71,6 +71,11 @@ add_definitions(-DORTHANC_ENABLE_JPEG=0) endif() +if (NOT ENABLE_ZLIB) + unset(USE_SYSTEM_ZLIB CACHE) + add_definitions(-DORTHANC_ENABLE_ZLIB=0) +endif() + if (NOT ENABLE_PNG) unset(USE_SYSTEM_LIBPNG CACHE) add_definitions(-DORTHANC_ENABLE_PNG=0) @@ -117,11 +122,6 @@ set(ORTHANC_CORE_SOURCES_INTERNAL ${ORTHANC_ROOT}/Core/Cache/MemoryCache.cpp ${ORTHANC_ROOT}/Core/ChunkedBuffer.cpp - ${ORTHANC_ROOT}/Core/Compression/DeflateBaseCompressor.cpp - ${ORTHANC_ROOT}/Core/Compression/GzipCompressor.cpp - ${ORTHANC_ROOT}/Core/Compression/HierarchicalZipWriter.cpp - ${ORTHANC_ROOT}/Core/Compression/ZipWriter.cpp - ${ORTHANC_ROOT}/Core/Compression/ZlibCompressor.cpp ${ORTHANC_ROOT}/Core/DicomFormat/DicomArray.cpp ${ORTHANC_ROOT}/Core/DicomFormat/DicomImageInformation.cpp ${ORTHANC_ROOT}/Core/DicomFormat/DicomInstanceHasher.cpp @@ -269,10 +269,36 @@ ## +## zlib support +## + +if (ENABLE_ZLIB) + include(${CMAKE_CURRENT_LIST_DIR}/ZlibConfiguration.cmake) + add_definitions(-DORTHANC_ENABLE_ZLIB=1) + + list(APPEND ORTHANC_CORE_SOURCES_INTERNAL + ${ORTHANC_ROOT}/Core/Compression/DeflateBaseCompressor.cpp + ${ORTHANC_ROOT}/Core/Compression/HierarchicalZipWriter.cpp + ${ORTHANC_ROOT}/Core/Compression/GzipCompressor.cpp + ${ORTHANC_ROOT}/Core/Compression/ZipWriter.cpp + ${ORTHANC_ROOT}/Core/Compression/ZlibCompressor.cpp + + # This is the minizip distribution to create ZIP files using zlib + ${ORTHANC_ROOT}/Resources/ThirdParty/minizip/ioapi.c + ${ORTHANC_ROOT}/Resources/ThirdParty/minizip/zip.c + ) +endif() + + +## ## PNG support: libpng (in conjunction with zlib) ## if (ENABLE_PNG) + if (NOT ENABLE_ZLIB) + message(FATAL_ERROR "Support for zlib must be enabled if enabling libpng support") + endif() + include(${CMAKE_CURRENT_LIST_DIR}/LibPngConfiguration.cmake) add_definitions(-DORTHANC_ENABLE_PNG=1) @@ -333,7 +359,6 @@ ##################################################################### include(${CMAKE_CURRENT_LIST_DIR}/JsonCppConfiguration.cmake) -include(${CMAKE_CURRENT_LIST_DIR}/ZlibConfiguration.cmake) if (NOT ORTHANC_SANDBOXED) include(${CMAKE_CURRENT_LIST_DIR}/UuidConfiguration.cmake) @@ -509,10 +534,6 @@ ${ORTHANC_ROOT}/Resources/ThirdParty/md5/md5.c ${ORTHANC_ROOT}/Resources/ThirdParty/base64/base64.cpp - - # This is the minizip distribution to create ZIP files using zlib - ${ORTHANC_ROOT}/Resources/ThirdParty/minizip/ioapi.c - ${ORTHANC_ROOT}/Resources/ThirdParty/minizip/zip.c ) set(ORTHANC_CORE_SOURCES diff -r 99116ed6f38c -r 91ee08d986f9 Resources/CMake/OrthancFrameworkParameters.cmake --- a/Resources/CMake/OrthancFrameworkParameters.cmake Mon Mar 26 18:31:40 2018 +0200 +++ b/Resources/CMake/OrthancFrameworkParameters.cmake Wed Mar 28 11:24:17 2018 +0200 @@ -93,6 +93,7 @@ set(ENABLE_PNG OFF CACHE INTERNAL "Enable support of PNG") set(ENABLE_PUGIXML OFF CACHE INTERNAL "Enable support of XML through Pugixml") set(ENABLE_SQLITE OFF CACHE INTERNAL "Enable support of SQLite databases") +set(ENABLE_ZLIB OFF CACHE INTERNAL "Enable support of zlib") set(ENABLE_WEB_CLIENT OFF CACHE INTERNAL "Enable Web client") set(ENABLE_WEB_SERVER OFF CACHE INTERNAL "Enable embedded Web server") set(ENABLE_DCMTK OFF CACHE INTERNAL "Enable DCMTK")