aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/gdcm
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/gdcm')
-rw-r--r--vcpkg/ports/gdcm/copyright.diff87
-rw-r--r--vcpkg/ports/gdcm/include-no-namespace.diff22
-rw-r--r--vcpkg/ports/gdcm/no-absolute-paths.diff39
-rw-r--r--vcpkg/ports/gdcm/portfile.cmake40
-rw-r--r--vcpkg/ports/gdcm/prefer-config.diff47
-rw-r--r--vcpkg/ports/gdcm/vcpkg.json25
6 files changed, 260 insertions, 0 deletions
diff --git a/vcpkg/ports/gdcm/copyright.diff b/vcpkg/ports/gdcm/copyright.diff
new file mode 100644
index 0000000..3a7e72e
--- /dev/null
+++ b/vcpkg/ports/gdcm/copyright.diff
@@ -0,0 +1,87 @@
+diff --git a/Utilities/CMakeLists.txt b/Utilities/CMakeLists.txt
+index 4cdc999..5971705 100644
+--- a/Utilities/CMakeLists.txt
++++ b/Utilities/CMakeLists.txt
+@@ -12,8 +12,8 @@ if(NOT GDCM_USE_SYSTEM_LJPEG)
+ endif()
+
+ # Do expat
+-APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmexpat/COPYING)
+ if(NOT GDCM_USE_SYSTEM_EXPAT)
++APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmexpat/COPYING)
+ set(EXPAT_NAMESPACE "GDCMEXPAT")
+ set(EXPAT_INSTALL_NO_LIBRARIES ${GDCM_INSTALL_NO_LIBRARIES})
+ set(EXPAT_INSTALL_BIN_DIR ${GDCM_INSTALL_BIN_DIR})
+@@ -22,8 +22,8 @@ if(NOT GDCM_USE_SYSTEM_EXPAT)
+ endif()
+
+ # Do openjpeg (jpeg2000 implementation)
+-APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmopenjpeg/LICENSE)
+ if(NOT GDCM_USE_SYSTEM_OPENJPEG)
++APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmopenjpeg/LICENSE)
+ set(OPENJPEG_NAMESPACE "GDCMOPENJPEG")
+ set(OPENJPEG_INSTALL_NO_LIBRARIES ${GDCM_INSTALL_NO_LIBRARIES})
+ set(OPENJPEG_INSTALL_BIN_DIR ${GDCM_INSTALL_BIN_DIR})
+@@ -34,9 +34,9 @@ if(NOT GDCM_USE_SYSTEM_OPENJPEG)
+ endif()
+
+ # Do jpegls (JPEG-LS aka near lossless implementation)
+-APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmcharls/License.txt)
+ if(GDCM_USE_JPEGLS)
+ if(NOT GDCM_USE_SYSTEM_CHARLS)
++APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmcharls/License.txt)
+ set(CHARLS_NAMESPACE "GDCMCHARLS")
+ set(CHARLS_INSTALL_NO_LIBRARIES ${GDCM_INSTALL_NO_LIBRARIES})
+ set(CHARLS_INSTALL_BIN_DIR ${GDCM_INSTALL_BIN_DIR})
+@@ -47,9 +47,9 @@ endif()
+ endif()
+
+ # Do md5
+-APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmmd5/COPYING)
+ if(GDCM_BUILD_TESTING)
+ if(NOT GDCM_USE_SYSTEM_MD5)
++APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmmd5/COPYING)
+ set(MD5_NAMESPACE "GDCMMD5")
+ set(MD5_INSTALL_NO_LIBRARIES ${GDCM_INSTALL_NO_LIBRARIES})
+ set(MD5_INSTALL_BIN_DIR ${GDCM_INSTALL_BIN_DIR})
+@@ -59,8 +59,8 @@ endif()
+ endif()
+
+ # Do zlib
+-APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmzlib/COPYING)
+ if(NOT GDCM_USE_SYSTEM_ZLIB)
++APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmzlib/COPYING)
+ set(ZLIB_NAMESPACE "GDCMZLIB")
+ set(ZLIB_INSTALL_NO_LIBRARIES ${GDCM_INSTALL_NO_LIBRARIES})
+ set(ZLIB_INSTALL_BIN_DIR ${GDCM_INSTALL_BIN_DIR})
+@@ -70,8 +70,8 @@ endif()
+
+ # Do getopt
+ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/getopt)
+- APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/getopt/COPYING)
+ if(WIN32 AND NOT CYGWIN AND NOT MINGW)
++ APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/getopt/COPYING)
+ set(GETOPT_NAMESPACE "GDCMGETOPT")
+ set(GETOPT_INSTALL_NO_LIBRARIES ${GDCM_INSTALL_NO_LIBRARIES})
+ set(GETOPT_INSTALL_BIN_DIR ${GDCM_INSTALL_BIN_DIR})
+@@ -81,9 +81,9 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/getopt)
+ endif()
+
+ # you could be running mingw32 on linux in which case you do NOT want the gdcmuuid lib
+-APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmuuid/COPYING)
+ if(NOT WIN32 AND NOT MINGW)
+ if(NOT GDCM_USE_SYSTEM_UUID)
++APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmuuid/COPYING)
+ set(UUID_NAMESPACE "GDCMUUID")
+ set(UUID_INSTALL_NO_LIBRARIES ${GDCM_INSTALL_NO_LIBRARIES})
+ set(UUID_INSTALL_BIN_DIR ${GDCM_INSTALL_BIN_DIR})
+@@ -92,8 +92,8 @@ if(NOT WIN32 AND NOT MINGW)
+ endif()
+ endif()
+
+-APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/pvrg/COPYING)
+ if(GDCM_USE_PVRG)
++APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/pvrg/COPYING)
+ if(NOT GDCM_USE_SYSTEM_PVRG)
+ add_subdirectory(pvrg)
+ endif()
diff --git a/vcpkg/ports/gdcm/include-no-namespace.diff b/vcpkg/ports/gdcm/include-no-namespace.diff
new file mode 100644
index 0000000..86c3633
--- /dev/null
+++ b/vcpkg/ports/gdcm/include-no-namespace.diff
@@ -0,0 +1,22 @@
+diff --git a/Source/Common/gdcmFilename.cxx b/Source/Common/gdcmFilename.cxx
+index 5384510..9c99f94 100644
+--- a/Source/Common/gdcmFilename.cxx
++++ b/Source/Common/gdcmFilename.cxx
+@@ -16,6 +16,9 @@
+ #include <climits>
+ #include <cstdlib> // realpath
+ #include <cstring>
++#ifdef _WIN32
++# include <windows.h>
++#endif
+
+ namespace gdcm
+ {
+@@ -97,7 +100,6 @@ const char *Filename::ToUnixSlashes()
+ }
+
+ #if defined(_WIN32) && (defined(_MSC_VER) || defined(__WATCOMC__) || defined(__BORLANDC__) || defined(__MINGW32__))
+-#include <windows.h>
+
+ inline void Realpath(const char *path, std::string & resolved_path)
+ {
diff --git a/vcpkg/ports/gdcm/no-absolute-paths.diff b/vcpkg/ports/gdcm/no-absolute-paths.diff
new file mode 100644
index 0000000..e76dd30
--- /dev/null
+++ b/vcpkg/ports/gdcm/no-absolute-paths.diff
@@ -0,0 +1,39 @@
+diff --git a/CMake/ExportConfiguration/GDCMConfig.cmake.in b/CMake/ExportConfiguration/GDCMConfig.cmake.in
+index d43d565..dd2023d 100644
+--- a/CMake/ExportConfiguration/GDCMConfig.cmake.in
++++ b/CMake/ExportConfiguration/GDCMConfig.cmake.in
+@@ -46,8 +46,6 @@ if(EXISTS ${SELF_DIR}/GDCMTargets.cmake)
+ else()
+ if(EXISTS ${SELF_DIR}/GDCMExports.cmake)
+ # This is a build tree
+- set( GDCM_INCLUDE_DIRS "@GDCM_INCLUDE_PATH@")
+- set(GDCM_LIBRARY_DIRS "@GDCM_LIBRARY_DIR@")
+
+ include(${SELF_DIR}/GDCMExports.cmake)
+
+diff --git a/Source/Common/gdcmConfigure.h.in b/Source/Common/gdcmConfigure.h.in
+index 4a5d68f..276c0f4 100644
+--- a/Source/Common/gdcmConfigure.h.in
++++ b/Source/Common/gdcmConfigure.h.in
+@@ -37,9 +37,9 @@
+
+ /* Useful in particular for loadshared where the full path
+ * to the lib is needed */
+-#define GDCM_SOURCE_DIR "@GDCM_SOURCE_DIR@"
+-#define GDCM_EXECUTABLE_OUTPUT_PATH "@EXECUTABLE_OUTPUT_PATH@"
+-#define GDCM_LIBRARY_OUTPUT_PATH "@LIBRARY_OUTPUT_PATH@"
++#define GDCM_SOURCE_DIR ""
++#define GDCM_EXECUTABLE_OUTPUT_PATH ""
++#define GDCM_LIBRARY_OUTPUT_PATH ""
+
+ #cmakedefine GDCM_BUILD_TESTING
+
+@@ -81,7 +81,7 @@
+ /* only cerr, for instance 'invalid file' will be allowed */
+ #cmakedefine GDCM_DEBUG
+
+-#define GDCM_CMAKE_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@"
++#define GDCM_CMAKE_INSTALL_PREFIX ""
+ #define GDCM_INSTALL_INCLUDE_DIR "@GDCM_INSTALL_INCLUDE_DIR@"
+ #define GDCM_INSTALL_DATA_DIR "@GDCM_INSTALL_DATA_DIR@"
+
diff --git a/vcpkg/ports/gdcm/portfile.cmake b/vcpkg/ports/gdcm/portfile.cmake
new file mode 100644
index 0000000..3e8a1c4
--- /dev/null
+++ b/vcpkg/ports/gdcm/portfile.cmake
@@ -0,0 +1,40 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO malaterre/GDCM
+ REF "v${VERSION}"
+ SHA512 2fe28444cee171a536d63f26c1ad7308a03b946e79dc8b7d648b5c7e6f4a8f52c0c32ec9cf463d95b876db31becc81541638b97fc7f15b79ae04de5988d6941e
+ HEAD_REF master
+ PATCHES
+ copyright.diff
+ include-no-namespace.diff
+ no-absolute-paths.diff
+ prefer-config.diff
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED_LIBS)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DGDCM_BUILD_DOCBOOK_MANPAGES=OFF
+ -DGDCM_BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}
+ -DGDCM_BUILD_TESTING=OFF
+ -DGDCM_INSTALL_DATA_DIR=share/${PORT}
+ -DGDCM_INSTALL_DOC_DIR=share/${PORT}/doc
+ -DGDCM_INSTALL_INCLUDE_DIR=include
+ -DGDCM_INSTALL_PACKAGE_DIR=share/${PORT}
+ -DGDCM_USE_SYSTEM_EXPAT=ON
+ -DGDCM_USE_SYSTEM_OPENJPEG=ON
+ -DGDCM_USE_SYSTEM_ZLIB=ON
+)
+
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/debug/share"
+)
+
+vcpkg_install_copyright(FILE_LIST "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Copyright.txt")
diff --git a/vcpkg/ports/gdcm/prefer-config.diff b/vcpkg/ports/gdcm/prefer-config.diff
new file mode 100644
index 0000000..3698bab
--- /dev/null
+++ b/vcpkg/ports/gdcm/prefer-config.diff
@@ -0,0 +1,47 @@
+diff --git a/CMake/ExportConfiguration/GDCMConfig.cmake.in b/CMake/ExportConfiguration/GDCMConfig.cmake.in
+index 169cb82..c77cf1f 100644
+--- a/CMake/ExportConfiguration/GDCMConfig.cmake.in
++++ b/CMake/ExportConfiguration/GDCMConfig.cmake.in
+@@ -1,3 +1,7 @@
++include(CMakeFindDependencyMacro)
++find_dependency(expat CONFIG)
++find_dependency(OpenJPEG CONFIG)
++find_dependency(ZLIB)
+ #-----------------------------------------------------------------------------
+ #
+ # GDCMConfig.cmake - CMake configuration file for external projects.
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 38c65d1..b0cb77b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -360,8 +360,8 @@ else()
+ endif()
+
+ if(GDCM_USE_SYSTEM_OPENJPEG)
+- find_package(OpenJPEG 2.0.0 REQUIRED)
+- set(GDCM_OPENJPEG_LIBRARIES ${OPENJPEG_LIBRARIES})
++ find_package(OpenJPEG CONFIG REQUIRED)
++ set(GDCM_OPENJPEG_LIBRARIES $<TARGET_NAME:openjp2>)
+ else()
+ set(GDCM_OPENJPEG_LIBRARIES gdcmopenjp2)
+ endif()
+@@ -401,7 +401,7 @@ if(GDCM_USE_SYSTEM_ZLIB)
+ # If user say so, then this is a requirement !
+ find_package(ZLIB REQUIRED)
+ include_directories(${ZLIB_INCLUDE_DIR})
+- set(GDCM_ZLIB_LIBRARIES ${ZLIB_LIBRARIES})
++ set(GDCM_ZLIB_LIBRARIES ZLIB::ZLIB)
+ else()
+ set(GDCM_ZLIB_LIBRARIES "gdcmzlib")
+ endif()
+@@ -420,8 +420,8 @@ endif()
+
+ if(GDCM_USE_SYSTEM_EXPAT)
+ # If user say so, then this is a requirement !
+- find_package(EXPAT REQUIRED)
+- set(GDCM_EXPAT_LIBRARIES ${EXPAT_LIBRARIES})
++ find_package(expat CONFIG REQUIRED)
++ set(GDCM_EXPAT_LIBRARIES expat::expat)
+ else()
+ set(GDCM_EXPAT_LIBRARIES "gdcmexpat")
+ endif()
diff --git a/vcpkg/ports/gdcm/vcpkg.json b/vcpkg/ports/gdcm/vcpkg.json
new file mode 100644
index 0000000..b3ad627
--- /dev/null
+++ b/vcpkg/ports/gdcm/vcpkg.json
@@ -0,0 +1,25 @@
+{
+ "name": "gdcm",
+ "version": "3.0.24",
+ "description": "Grassroots DICOM library",
+ "homepage": "https://github.com/malaterre/GDCM",
+ "license": null,
+ "supports": "!uwp",
+ "dependencies": [
+ "expat",
+ {
+ "name": "libiconv",
+ "platform": "!windows"
+ },
+ "openjpeg",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ },
+ "zlib"
+ ]
+}