Mercurial > hg > orthanc-gdcm
changeset 102:50803058462d
simplified build process for LSB
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 01 Sep 2025 16:54:37 +0200 |
parents | 8a9048d6e5e7 |
children | ab1e8b8f127d |
files | Resources/CMake/GdcmConfiguration.cmake Resources/CMake/gdcm-2.8.9-no-networking.patch Resources/CMake/gdcm-3.0.24-no-networking.patch |
diffstat | 3 files changed, 84 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/Resources/CMake/GdcmConfiguration.cmake Mon Sep 01 15:35:21 2025 +0200 +++ b/Resources/CMake/GdcmConfiguration.cmake Mon Sep 01 16:54:37 2025 +0200 @@ -73,25 +73,25 @@ # Don't build manpages (since gdcm 2.8.4) list(APPEND Flags -DGDCM_BUILD_DOCBOOK_MANPAGES=OFF) - if ("${CMAKE_SYSTEM_VERSION}" STREQUAL "LinuxStandardBase") - # Trick to disable the compilation of socket++ by gdcm, which is + if ("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Linux" OR + "${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Darwin") + # Patch to disable the compilation of socket++ by gdcm, which is # incompatible with LSB, but fortunately only required for DICOM - # Networking - list(APPEND Flags -DGDCM_USE_SYSTEM_SOCKETXX=ON) + # Networking. We don't do this on Windows, as the "patch.exe" + # command-line tool will certainly be unavailable. (*) + if (USE_LEGACY_GDCM) + set(GDCM_PATCH "${CMAKE_SOURCE_DIR}/Resources/CMake/gdcm-2.8.9-no-networking.patch") + else() + set(GDCM_PATCH "${CMAKE_SOURCE_DIR}/Resources/CMake/gdcm-3.0.24-no-networking.patch") + endif() - # Detect the number of CPU cores to run "make" with as much - # parallelism as possible - include(ProcessorCount) - ProcessorCount(N) - if (NOT N EQUAL 0) - set(MAKE_PARALLEL -j${N}) + find_program(PATCH_EXECUTABLE patch) + if (${PATCH_EXECUTABLE} MATCHES "PATCH_EXECUTABLE-NOTFOUND") + message(FATAL_ERROR "Please install the 'patch' standard command-line tool") endif() - - # For Linux Standard Base, avoid building incompatible target gdcmMEXD (*) - set(BUILD_COMMAND BUILD_COMMAND - ${CMAKE_MAKE_PROGRAM} ${MAKE_PARALLEL} - gdcmMSFF gdcmcharls gdcmDICT gdcmDSED gdcmIOD gdcmjpeg8 - gdcmjpeg12 gdcmjpeg16 gdcmopenjp2 gdcmzlib gdcmCommon gdcmexpat gdcmuuid) + + set(PATCH_COMMAND PATCH_COMMAND + ${PATCH_EXECUTABLE} -p1 -N -i ${GDCM_PATCH}) endif() include(ExternalProject) @@ -99,8 +99,8 @@ URL "${GDCM_URL}" URL_MD5 "${GDCM_MD5}" TIMEOUT 60 + ${PATCH_COMMAND} # Apply patch to remove networking support (*) CMAKE_ARGS -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} "-DCMAKE_INSTALL_PREFIX=${GDCM_INSTALL_DIR}" ${Flags} - ${BUILD_COMMAND} # Customize "make", only for Linux Standard Base (*) ) if(MSVC)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Resources/CMake/gdcm-2.8.9-no-networking.patch Mon Sep 01 16:54:37 2025 +0200 @@ -0,0 +1,34 @@ +diff -urEb gdcm-2.8.9.orig/CMakeLists.txt gdcm-2.8.9/CMakeLists.txt +--- gdcm-2.8.9.orig/CMakeLists.txt 2025-09-01 16:44:15.260052498 +0200 ++++ gdcm-2.8.9/CMakeLists.txt 2025-09-01 16:45:00.788774640 +0200 +@@ -1031,7 +1031,7 @@ + "${GDCM_BINARY_DIR}/Source/Common" + "${GDCM_SOURCE_DIR}/Source/DataStructureAndEncodingDefinition" + "${GDCM_SOURCE_DIR}/Source/MediaStorageAndFileFormat" +- "${GDCM_SOURCE_DIR}/Source/MessageExchangeDefinition" ++ # "${GDCM_SOURCE_DIR}/Source/MessageExchangeDefinition" + "${GDCM_SOURCE_DIR}/Source/DataDictionary" + "${GDCM_SOURCE_DIR}/Source/InformationObjectDefinition" + ) +diff -urEb gdcm-2.8.9.orig/Source/CMakeLists.txt gdcm-2.8.9/Source/CMakeLists.txt +--- gdcm-2.8.9.orig/Source/CMakeLists.txt 2025-09-01 16:44:15.246052583 +0200 ++++ gdcm-2.8.9/Source/CMakeLists.txt 2025-09-01 16:44:47.887853385 +0200 +@@ -6,5 +6,5 @@ + DataStructureAndEncodingDefinition + InformationObjectDefinition + MediaStorageAndFileFormat +- MessageExchangeDefinition ++ # MessageExchangeDefinition + ) +diff -urEb gdcm-2.8.9.orig/Utilities/CMakeLists.txt gdcm-2.8.9/Utilities/CMakeLists.txt +--- gdcm-2.8.9.orig/Utilities/CMakeLists.txt 2025-09-01 16:44:15.256052522 +0200 ++++ gdcm-2.8.9/Utilities/CMakeLists.txt 2025-09-01 16:44:41.502892354 +0200 +@@ -125,7 +125,7 @@ + set(SOCKETXX_INSTALL_BIN_DIR ${GDCM_INSTALL_BIN_DIR}) + set(SOCKETXX_INSTALL_LIB_DIR ${GDCM_INSTALL_LIB_DIR}) + set(SOCKETXX_INSTALL_INCLUDE_DIR ${GDCM_INSTALL_INCLUDE_DIR}/socketxx) +- subdirs(socketxx) ++ # subdirs(socketxx) + endif() + + add_subdirectory(gdcmrle)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Resources/CMake/gdcm-3.0.24-no-networking.patch Mon Sep 01 16:54:37 2025 +0200 @@ -0,0 +1,33 @@ +diff -urEb GDCM-3.0.24.orig/CMakeLists.txt GDCM-3.0.24/CMakeLists.txt +--- GDCM-3.0.24.orig/CMakeLists.txt 2025-09-01 16:43:54.922176587 +0200 ++++ GDCM-3.0.24/CMakeLists.txt 2025-09-01 16:53:23.970874745 +0200 +@@ -1113,7 +1113,7 @@ + "${GDCM_BINARY_DIR}/Source/Common" + "${GDCM_SOURCE_DIR}/Source/DataStructureAndEncodingDefinition" + "${GDCM_SOURCE_DIR}/Source/MediaStorageAndFileFormat" +- "${GDCM_SOURCE_DIR}/Source/MessageExchangeDefinition" ++ # "${GDCM_SOURCE_DIR}/Source/MessageExchangeDefinition" + "${GDCM_SOURCE_DIR}/Source/DataDictionary" + "${GDCM_SOURCE_DIR}/Source/InformationObjectDefinition" + ) +diff -urEb GDCM-3.0.24.orig/Source/CMakeLists.txt GDCM-3.0.24/Source/CMakeLists.txt +--- GDCM-3.0.24.orig/Source/CMakeLists.txt 2025-09-01 16:43:54.925176568 +0200 ++++ GDCM-3.0.24/Source/CMakeLists.txt 2025-09-01 16:53:47.762740783 +0200 +@@ -5,4 +5,4 @@ + add_subdirectory( DataStructureAndEncodingDefinition ) + add_subdirectory( InformationObjectDefinition ) + add_subdirectory( MediaStorageAndFileFormat ) +-add_subdirectory( MessageExchangeDefinition ) ++# add_subdirectory( MessageExchangeDefinition ) +diff -urEb GDCM-3.0.24.orig/Utilities/CMakeLists.txt GDCM-3.0.24/Utilities/CMakeLists.txt +--- GDCM-3.0.24.orig/Utilities/CMakeLists.txt 2025-09-01 16:43:54.942176465 +0200 ++++ GDCM-3.0.24/Utilities/CMakeLists.txt 2025-09-01 16:53:37.253800011 +0200 +@@ -122,7 +122,7 @@ + set(SOCKETXX_INSTALL_BIN_DIR ${GDCM_INSTALL_BIN_DIR}) + set(SOCKETXX_INSTALL_LIB_DIR ${GDCM_INSTALL_LIB_DIR}) + set(SOCKETXX_INSTALL_INCLUDE_DIR ${GDCM_INSTALL_INCLUDE_DIR}/socketxx) +- add_subdirectory(socketxx) ++ # add_subdirectory(socketxx) + endif() + + add_subdirectory(gdcmrle)