diff options
Diffstat (limited to 'vcpkg/ports/dcmtk/portfile.cmake')
| -rw-r--r-- | vcpkg/ports/dcmtk/portfile.cmake | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/vcpkg/ports/dcmtk/portfile.cmake b/vcpkg/ports/dcmtk/portfile.cmake new file mode 100644 index 0000000..22521af --- /dev/null +++ b/vcpkg/ports/dcmtk/portfile.cmake @@ -0,0 +1,174 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO DCMTK/dcmtk + REF "DCMTK-${VERSION}" + SHA512 fcb222182ea653304a1c49db31899a8b08d881916f90d3d35bfab2896aa11473232ac0c0f2195e4d478a6188d3b2c5f54d5172f29c42688c5d05f9bf738ca775 + HEAD_REF master + PATCHES + dcmtk.patch + dependencies.diff + dictionary_paths.patch + disable-test-setup.diff + pkgconfig-lib-order.diff + msvc.diff +) +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_" +file(GLOB src_files "${SOURCE_PATH}/dcmjpeg/libijg*/*.c" "${SOURCE_PATH}/dcmjpeg/libijg*/*.h") +foreach(file_path ${src_files}) + file(READ "${file_path}" file_string) + string(REGEX REPLACE "(#define[ \t\r\n]+[A-Za-z0-9_]*[ \t\r\n]+)(j[a-z]+[0-9]+_)" "\\1dcmtk_\\2" file_string "${file_string}") + file(WRITE "${file_path}" "${file_string}") +endforeach() + +vcpkg_cmake_get_vars(cmake_vars_file) +include("${cmake_vars_file}") +if(VCPKG_DETECTED_CMAKE_CROSSCOMPILING) + message(STATUS [[ +Cross-compiling DCMTK needs input from executing test programs in the target +environment. You may need to provide a suitable emulator setup, and you can set +values directly with `VCPKG_CMAKE_CONFIGURE_OPTIONS` in a custom triplet file. +For more information see +https://support.dcmtk.org/redmine/projects/dcmtk/wiki/Cross_Compiling +]]) +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 + "openjpeg" DCMTK_WITH_OPENJPEG + "tools" BUILD_APPS +) + +if("external-dict" IN_LIST FEATURES) + set(DCMTK_DEFAULT_DICT "external") + set(DCMTK_ENABLE_BUILTIN_OFICONV_DATA OFF) +else() + set(DCMTK_DEFAULT_DICT "builtin") + set(DCMTK_ENABLE_BUILTIN_OFICONV_DATA ON) +endif() + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + -DCMAKE_CXX_STANDARD=17 + -DCMAKE_INSTALL_DOCDIR=share/${PORT}/doc + -DDCMTK_DEFAULT_DICT=${DCMTK_DEFAULT_DICT} + -DCMAKE_DISABLE_FIND_PACKAGE_BISON=ON + -DCMAKE_DISABLE_FIND_PACKAGE_FLEX=ON + -DDCMTK_ENABLE_BUILTIN_OFICONV_DATA=${DCMTK_ENABLE_BUILTIN_OFICONV_DATA} + -DDCMTK_ENABLE_PRIVATE_TAGS=ON + -DDCMTK_ENABLE_STL=ON + -DDCMTK_OVERWRITE_WIN32_COMPILER_FLAGS=OFF + -DDCMTK_USE_FIND_PACKAGE=ON + -DDCMTK_WIDE_CHAR_FILE_IO_FUNCTIONS=ON + -DDCMTK_WIDE_CHAR_MAIN_FUNCTION=ON + -DDCMTK_WITH_DOXYGEN=OFF + -DDCMTK_WITH_SNDFILE=OFF + -DDCMTK_WITH_WRAP=OFF + OPTIONS_DEBUG + -DBUILD_APPS=OFF +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() +vcpkg_cmake_config_fixup() +vcpkg_fixup_pkgconfig() + +if ("tools" IN_LIST FEATURES) + set(_tools + dcm2cda + cda2dcm + dcm2img + dcm2json + dcm2pdf + dcm2pnm + dcm2xml + dcmcjpeg + dcmcjpls + dcmconv + dcmcrle + dcmdjpeg + dcmdjpls + dcmdrle + dcmdspfn + dcmdump + dcmftest + dcmgpdir + dcmicmp + dcmj2pnm + dcml2pnm + dcmmkcrv + dcmmkdir + dcmmklut + dcmodify + dcmp2pgm + dcmprscp + dcmprscu + dcmpschk + dcmpsmk + dcmpsprt + dcmpsrcv + dcmpssnd + dcmqridx + dcmqrscp + dcmqrti + dcmquant + dcmrecv + dcmscale + dcmsend + dcmsign + dcod2lum + dconvlum + drtdump + dsr2html + dsr2xml + dsrdump + dump2dcm + echoscu + findscu + getscu + img2dcm + mkcsmapper + mkesdb + movescu + pdf2dcm + stl2dcm + storescp + storescu + termscu + wlmscpfs + xml2dcm + xml2dsr + ) + vcpkg_copy_tools(TOOL_NAMES ${_tools} AUTO_CLEAN) +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) \"[^\"]*\"" + "#define \\1 \"\" /* redacted by vcpkg */" + REGEX +) + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYRIGHT") + |