From 96ff71a4a601bbef4389a6fcfab7a1ca01b9f5f3 Mon Sep 17 00:00:00 2001 From: Nick D'Ademo Date: Thu, 4 Sep 2025 09:10:22 +0800 Subject: [PATCH] [dcmtk] add openjpeg feature (#46585) Co-authored-by: Nick D'Ademo Co-authored-by: Kai Pastor --- ports/dcmtk/dependencies.diff | 3 ++- ports/dcmtk/portfile.cmake | 21 ++++++++++++-------- ports/dcmtk/vcpkg.json | 8 +++++++- scripts/ci.feature.baseline.txt | 5 +++-- scripts/test_ports/vcpkg-ci-dcmtk/vcpkg.json | 3 ++- versions/baseline.json | 2 +- versions/d-/dcmtk.json | 5 +++++ 7 files changed, 33 insertions(+), 14 deletions(-) diff --git a/ports/dcmtk/dependencies.diff b/ports/dcmtk/dependencies.diff index 91b1a112bb..91d61b7841 100644 --- a/ports/dcmtk/dependencies.diff +++ b/ports/dcmtk/dependencies.diff @@ -2,13 +2,14 @@ diff --git a/CMake/3rdparty.cmake b/CMake/3rdparty.cmake index 510027c..eb8fe90 100644 --- a/CMake/3rdparty.cmake +++ b/CMake/3rdparty.cmake -@@ -1,3 +1,10 @@ +@@ -1,3 +1,11 @@ +set(CMAKE_REQUIRE_FIND_PACKAGE_Iconv "${DCMTK_WITH_ICONV}") +set(CMAKE_REQUIRE_FIND_PACKAGE_LibXml2 "${DCMTK_WITH_XML}") +set(CMAKE_REQUIRE_FIND_PACKAGE_OpenSSL "${DCMTK_WITH_OPENSSL}") +set(CMAKE_REQUIRE_FIND_PACKAGE_PNG "${DCMTK_WITH_PNG}") +set(CMAKE_REQUIRE_FIND_PACKAGE_TIFF "${DCMTK_WITH_TIFF}") +set(CMAKE_REQUIRE_FIND_PACKAGE_ZLIB "${DCMTK_WITH_ZLIB}") ++set(CMAKE_REQUIRE_FIND_PACKAGE_OpenJPEG "${DCMTK_WITH_OPENJPEG}") + set(USE_FIND_PACKAGE_DOCS "Control whether libraries are searched via CMake's find_package() mechanism or a Windows specific fallback") # Advanced user (eg. vcpkg) may want to override this: diff --git a/ports/dcmtk/portfile.cmake b/ports/dcmtk/portfile.cmake index 531e9ea4ae..22521afae5 100644 --- a/ports/dcmtk/portfile.cmake +++ b/ports/dcmtk/portfile.cmake @@ -15,6 +15,7 @@ vcpkg_from_github( file(REMOVE "${SOURCE_PATH}/CMake/FindICONV.cmake" "${SOURCE_PATH}/CMake/FindJPEG.cmake" + "${SOURCE_PATH}/CMake/FindOpenJPEG.cmake" ) # Prefix all exported API symbols of vendored libjpeg with "dcmtk_" @@ -39,13 +40,14 @@ endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES - "iconv" DCMTK_WITH_ICONV - "openssl" DCMTK_WITH_OPENSSL - "png" DCMTK_WITH_PNG - "tiff" DCMTK_WITH_TIFF - "xml2" DCMTK_WITH_XML - "zlib" DCMTK_WITH_ZLIB - "tools" BUILD_APPS + "iconv" DCMTK_WITH_ICONV + "openssl" DCMTK_WITH_OPENSSL + "png" DCMTK_WITH_PNG + "tiff" DCMTK_WITH_TIFF + "xml2" DCMTK_WITH_XML + "zlib" DCMTK_WITH_ZLIB + "openjpeg" DCMTK_WITH_OPENJPEG + "tools" BUILD_APPS ) if("external-dict" IN_LIST FEATURES) @@ -72,7 +74,6 @@ vcpkg_cmake_configure( -DDCMTK_USE_FIND_PACKAGE=ON -DDCMTK_WIDE_CHAR_FILE_IO_FUNCTIONS=ON -DDCMTK_WIDE_CHAR_MAIN_FUNCTION=ON - -DDCMTK_WITH_OPENJPEG=OFF -DDCMTK_WITH_DOXYGEN=OFF -DDCMTK_WITH_SNDFILE=OFF -DDCMTK_WITH_WRAP=OFF @@ -157,6 +158,10 @@ endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/bin") +endif() + # no absolute paths vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/dcmtk/config/osconfig.h" "#define (DCMTK_PREFIX|DCM_DICT_DEFAULT_PATH|DEFAULT_CONFIGURATION_DIR|DEFAULT_SUPPORT_DATA_DIR) \"[^\"]*\"" diff --git a/ports/dcmtk/vcpkg.json b/ports/dcmtk/vcpkg.json index 9d8c24d575..4db0fe8f85 100644 --- a/ports/dcmtk/vcpkg.json +++ b/ports/dcmtk/vcpkg.json @@ -1,7 +1,7 @@ { "name": "dcmtk", "version": "3.6.9", - "port-version": 1, + "port-version": 2, "description": "This DICOM ToolKit (DCMTK) package consists of source code, documentation and installation instructions for a set of software libraries and applications implementing part of the DICOM/MEDICOM Standard.", "homepage": "https://github.com/DCMTK/dcmtk", "license": null, @@ -30,6 +30,12 @@ "libiconv" ] }, + "openjpeg": { + "description": "Enable OpenJPEG support", + "dependencies": [ + "openjpeg" + ] + }, "openssl": { "description": "Enable OpenSSL", "dependencies": [ diff --git a/scripts/ci.feature.baseline.txt b/scripts/ci.feature.baseline.txt index 723bf9ddf3..ca446bce9d 100644 --- a/scripts/ci.feature.baseline.txt +++ b/scripts/ci.feature.baseline.txt @@ -779,7 +779,6 @@ darknet[opencv3-base]:arm64-osx = cascade dartsim(uwp) = cascade daxa:x64-uwp = cascade dcmtk[icu](uwp) = cascade -dcmtk[icu](uwp) = cascade devil[openexr]:arm64-uwp = cascade devil[openexr]:x64-uwp = cascade directxtex[core,dx11,dx12,openexr,spectre,tools]:arm64-windows-static-md = combination-fails # error LNK2047: module contains C++ EH or complex EH metadata but was not compiled with /guard:ehcont @@ -2098,7 +2097,9 @@ crashrpt(windows) = fail # precompiled header errors. See https://github.com/mic ctbench(osx) = fail # requires C++ 20 date[remote-api](uwp) = feature-fails # error C2065: 'FOLDERID_ProgramFiles': undeclared identifier. See https://github.com/microsoft/vcpkg/issues/33610 dcmtk[core,iconv,icu,openssl,png,tiff,tools,xml2,zlib](osx) = combination-fails # missing symbols from libtiff. See https://github.com/microsoft/vcpkg/issues/33512 -dcmtk[xml2](windows) = feature-fails # fatal error C1083: Cannot open include file: 'iconv.h'. See https://github.com/microsoft/vcpkg/issues/33473 +dcmtk[iconv](arm64 & windows & !uwp) = feature-fails # try_run +dcmtk[tools](arm64 & windows & !uwp) = feature-fails # try_run +dcmtk(android) = fail # try_run dcmtk(uwp) = fail # Please set the C++ runtime location (required for running applications targeting Windows). See https://github.com/microsoft/vcpkg/issues/35112 dmlc[openmp](osx) = feature-fails # No openmp on osx dv-processing[tools](osx) = feature-fails # Broke with compiler version. See https://github.com/microsoft/vcpkg/issues/39852 diff --git a/scripts/test_ports/vcpkg-ci-dcmtk/vcpkg.json b/scripts/test_ports/vcpkg-ci-dcmtk/vcpkg.json index 47145d754b..18bd2f0961 100644 --- a/scripts/test_ports/vcpkg-ci-dcmtk/vcpkg.json +++ b/scripts/test_ports/vcpkg-ci-dcmtk/vcpkg.json @@ -13,7 +13,8 @@ "tiff", "tools", "xml2", - "zlib" + "zlib", + "openjpeg" ] }, { diff --git a/versions/baseline.json b/versions/baseline.json index 10e51277a0..a674b3858d 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2366,7 +2366,7 @@ }, "dcmtk": { "baseline": "3.6.9", - "port-version": 1 + "port-version": 2 }, "debug-assert": { "baseline": "1.3.4", diff --git a/versions/d-/dcmtk.json b/versions/d-/dcmtk.json index 3dead66aff..7189a5fe0c 100644 --- a/versions/d-/dcmtk.json +++ b/versions/d-/dcmtk.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "0ff9c4eff525cb8cf1d04bf9952dc9446c3eef3a", + "version": "3.6.9", + "port-version": 2 + }, { "git-tree": "6445ef976bd199730e54bd775a4a4d111aac84c6", "version": "3.6.9",