aboutsummaryrefslogtreecommitdiff
path: root/ports/gdcm
diff options
context:
space:
mode:
Diffstat (limited to 'ports/gdcm')
-rw-r--r--ports/gdcm/CONTROL4
-rw-r--r--ports/gdcm/find-openjpeg.patch48
-rw-r--r--ports/gdcm/fix-share-path.patch32
-rw-r--r--ports/gdcm/portfile.cmake49
4 files changed, 133 insertions, 0 deletions
diff --git a/ports/gdcm/CONTROL b/ports/gdcm/CONTROL
new file mode 100644
index 000000000..127a89c67
--- /dev/null
+++ b/ports/gdcm/CONTROL
@@ -0,0 +1,4 @@
+Source: gdcm
+Version: 3.0.0
+Description: Grassroots DICOM library
+Build-Depends: zlib, expat, openjpeg
diff --git a/ports/gdcm/find-openjpeg.patch b/ports/gdcm/find-openjpeg.patch
new file mode 100644
index 000000000..c3fff18f5
--- /dev/null
+++ b/ports/gdcm/find-openjpeg.patch
@@ -0,0 +1,48 @@
+--- a/CMake/FindOpenJPEG.cmake
++++ b/CMake/FindOpenJPEG.cmake
+@@ -20,14 +20,38 @@
+
+ # Try with pkg-config first
+ find_package(PkgConfig)
+-pkg_check_modules(OPENJPEG libopenjp2)
++if (PKG_CONFIG_FOUND)
++ pkg_check_modules(OPENJPEG libopenjp2)
++ include(FindPackageHandleStandardArgs)
++ find_package_handle_standard_args(OpenJPEG REQUIRED_VARS
++ OPENJPEG_LIBRARIES
++ OPENJPEG_INCLUDE_DIRS
++ VERSION_VAR OPENJPEG_VERSION
++ )
++endif()
+
+-include(FindPackageHandleStandardArgs)
+-find_package_handle_standard_args(OpenJPEG REQUIRED_VARS
+- OPENJPEG_LIBRARIES
+- OPENJPEG_INCLUDE_DIRS
+- VERSION_VAR OPENJPEG_VERSION
+-)
++find_path(OPENJPEG_INCLUDE_DIR NAMES openjpeg.h)
++find_library(OPENJPEG_LIBRARY NAMES openjp2)
++if (OPENJPEG_LIBRARY)
++ string(FIND ${OPENJPEG_LIBRARY} debug _debug_substrpos)
++ if (_debug_substrpos EQUAL -1)
++ set(OPENJPEG_LIBRARY_RELEASE ${OPENJPEG_LIBRARY})
++ string(REPLACE "/lib" "/debug/lib" OPENJPEG_LIBRARY_DEBUG ${OPENJPEG_LIBRARY_RELEASE})
++ else()
++ set(OPENJPEG_LIBRARY_DEBUG ${OPENJPEG_LIBRARY})
++ string(REPLACE "/debug/lib" "/lib" OPENJPEG_LIBRARY_RELEASE ${OPENJPEG_LIBRARY_DEBUG})
++ endif()
++ set(OPENJPEG_LIBRARY optimized ${OPENJPEG_LIBRARY_RELEASE} debug ${OPENJPEG_LIBRARY_DEBUG})
++ set(OPENJPEG_FOUND TRUE)
++endif()
++
++if (OPENJPEG_FOUND)
++ set(OPENJPEG_LIBRARIES ${OPENJPEG_LIBRARY})
++ set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG_INCLUDE_DIR})
++ message(STATUS "Found OPENJPEG library ${OPENJPEG_LIBRARIES}")
++else()
++ message(FATAL_ERROR "NOT found OPENJPEG")
++endif()
+
+ mark_as_advanced(
+ OPENJPEG_LIBRARIES
diff --git a/ports/gdcm/fix-share-path.patch b/ports/gdcm/fix-share-path.patch
new file mode 100644
index 000000000..931094681
--- /dev/null
+++ b/ports/gdcm/fix-share-path.patch
@@ -0,0 +1,32 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6ac16ab..842d833 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -246,15 +246,15 @@ if(NOT GDCM_INSTALL_LIB_DIR)
+ endif()
+
+ if(NOT GDCM_INSTALL_DATA_DIR)
+- set(GDCM_INSTALL_DATA_DIR "share/${subdir}")
++ set(GDCM_INSTALL_DATA_DIR "share/${projectname}")
+ endif()
+
+ if(NOT GDCM_INSTALL_INCLUDE_DIR)
+- set(GDCM_INSTALL_INCLUDE_DIR "include/${subdir}")
++ set(GDCM_INSTALL_INCLUDE_DIR "include/${projectname}")
+ endif()
+
+ if(NOT GDCM_INSTALL_DOC_DIR)
+- set(GDCM_INSTALL_DOC_DIR "share/doc/${subdir}")
++ set(GDCM_INSTALL_DOC_DIR "share/doc/${projectname}")
+ endif()
+
+ if(NOT GDCM_INSTALL_MAN_DIR)
+@@ -262,7 +262,7 @@ if(NOT GDCM_INSTALL_MAN_DIR)
+ endif()
+
+ if(NOT GDCM_INSTALL_PACKAGE_DIR)
+- set(GDCM_INSTALL_PACKAGE_DIR ${GDCM_INSTALL_LIB_DIR}/${subdir}
++ set(GDCM_INSTALL_PACKAGE_DIR ${GDCM_INSTALL_LIB_DIR}/${projectname}
+ CACHE INTERNAL "")
+ endif()
+
diff --git a/ports/gdcm/portfile.cmake b/ports/gdcm/portfile.cmake
new file mode 100644
index 000000000..80b0ab6d8
--- /dev/null
+++ b/ports/gdcm/portfile.cmake
@@ -0,0 +1,49 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO malaterre/GDCM
+ REF v3.0.0
+ SHA512 2ac076dd49011234f4431ffe67fcba84a1ca9042ec5fc4dfc8aed2ed16bec5f499fa7aa666e5630796afc266ce76741d931cca333534b55fdc477e25a9189d33
+ HEAD_REF master
+ PATCHES
+ find-openjpeg.patch
+ fix-share-path.patch
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set(GDCM_BUILD_SHARED_LIBS ON)
+else()
+ set(GDCM_BUILD_SHARED_LIBS OFF)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS
+ -DGDCM_BUILD_DOCBOOK_MANPAGES=OFF
+ -DGDCM_BUILD_SHARED_LIBS=${GDCM_BUILD_SHARED_LIBS}
+ -DGDCM_INSTALL_INCLUDE_DIR=include
+ -DGDCM_USE_SYSTEM_EXPAT=ON
+ -DGDCM_USE_SYSTEM_ZLIB=ON
+ -DGDCM_USE_SYSTEM_OPENJPEG=ON
+ -DGDCM_BUILD_TESTING=OFF
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/gdcm TARGET_PATH share/gdcm)
+
+file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/debug/include
+ ${CURRENT_PACKAGES_DIR}/debug/share
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/Copyright.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/gdcm RENAME copyright)
+
+vcpkg_copy_pdbs()