aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrançois-Xavier Carton <fx.carton91@gmail.com>2022-02-01 11:14:53 +0100
committerAndrew Ammerlaan <andrewammerlaan@gentoo.org>2022-08-23 12:58:02 +0200
commit19fa78b557686620270aa70ca58d398b3ecc2e33 (patch)
treecfd2f1e603c71671a7884c9e8bcdf73601846a76
parentmedia-libs/charls: new package (diff)
downloadsci-19fa78b5.tar.gz
sci-19fa78b5.tar.bz2
sci-19fa78b5.zip
sci-libs/gdcm: new package
Signed-off-by: François-Xavier Carton <fx.carton91@gmail.com> Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
-rw-r--r--sci-libs/gdcm/Manifest2
-rw-r--r--sci-libs/gdcm/files/gdcm-3.0.14-include-math-h.patch15
-rw-r--r--sci-libs/gdcm/files/gdcm_support_vtk9.patch70
-rw-r--r--sci-libs/gdcm/gdcm-3.0.14.ebuild121
-rw-r--r--sci-libs/gdcm/metadata.xml14
5 files changed, 222 insertions, 0 deletions
diff --git a/sci-libs/gdcm/Manifest b/sci-libs/gdcm/Manifest
new file mode 100644
index 000000000..64b9caefd
--- /dev/null
+++ b/sci-libs/gdcm/Manifest
@@ -0,0 +1,2 @@
+DIST gdcm-3.0.14.tar.bz2 2992355 BLAKE2B a97209a8bb6896095bfc59ac974b667386c8711f20118252567cf983f15165d259da7858ccfd6bfdfbb25194d7687c98512953b480913acec4bf6d176af7a005 SHA512 9c7d70723d288bf116a8b594c02dd965a4e80476e1c79a7c3cbd09584a229c83ad67f082c9b286305e3bb64150c8267ced06b5fb963adbeeb36e383f76612220
+DIST gdcmData.tar.gz 121157465 BLAKE2B 19b13efc2094d3e373f0f658f1120b1c83ea6da1be73fb392b815433725b4a6db2debb9ab7d9f2caa665637f152f70694cdf226c934850dfda344107050a14a6 SHA512 ddc67a7a0b41b2d6e1e03defb6fb8a06ceeb2e9dd9bb47dfa4f7283d79df7c1e52577b799c00e930719ae6cdda46bded9497a67b8241359f238f5366085ec9ee
diff --git a/sci-libs/gdcm/files/gdcm-3.0.14-include-math-h.patch b/sci-libs/gdcm/files/gdcm-3.0.14-include-math-h.patch
new file mode 100644
index 000000000..ba99c3547
--- /dev/null
+++ b/sci-libs/gdcm/files/gdcm-3.0.14-include-math-h.patch
@@ -0,0 +1,15 @@
+https://cgit.freebsd.org/ports/plain/devel/gdcm/files/patch-Utilities_VTK_vtkImageMapToWindowLevelColors2.cxx?id=8f5541298099b722e34632ca9ed388bda91064e7
+
+- workaround for https://sourceforge.net/p/gdcm/bugs/536/
+
+--- a/Utilities/VTK/vtkImageMapToWindowLevelColors2.cxx 2022-06-26 20:39:45 UTC
++++ b/Utilities/VTK/vtkImageMapToWindowLevelColors2.cxx
+@@ -37,6 +37,8 @@
+ #include "vtkScalarsToColors.h"
+ #include "vtkPointData.h"
+
++#include <math.h>
++
+ //vtkCxxRevisionMacro(vtkImageMapToWindowLevelColors2, "$Revision: 1.3 $")
+ vtkStandardNewMacro(vtkImageMapToWindowLevelColors2)
+
diff --git a/sci-libs/gdcm/files/gdcm_support_vtk9.patch b/sci-libs/gdcm/files/gdcm_support_vtk9.patch
new file mode 100644
index 000000000..3818a82b5
--- /dev/null
+++ b/sci-libs/gdcm/files/gdcm_support_vtk9.patch
@@ -0,0 +1,70 @@
+--- a/Utilities/VTK/CMakeLists.txt
++++ b/Utilities/VTK/CMakeLists.txt
+@@ -26,6 +26,11 @@
+ )
+ endif()
+
++if( ${VTK_MAJOR_VERSION} GREATER_EQUAL 9 )
++ set(VTK_INCLUDE_DIRS "${VTK_PREFIX_PATH}/include/vtk-${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}")
++ include_directories(AFTER ${VTK_INCLUDE_DIRS})
++endif()
++
+ include(CheckCXXSourceCompiles)
+ set(CMAKE_REQUIRED_INCLUDES ${VTK_INCLUDE_DIRS})
+ CHECK_CXX_SOURCE_COMPILES(
+@@ -94,6 +99,10 @@
+ endforeach()
+ endif()
+
++if( ${VTK_MAJOR_VERSION} GREATER_EQUAL 9 )
++ string(REGEX REPLACE "vtk([^;]+)" "VTK::\\1" vtkgdcm_LIBS "${vtkgdcm_LIBS}")
++endif()
++
+ # Use wrapping hints for this project.
+ #set(VTK_WRAP_HINTS "${PROJECT_SOURCE_DIR}/hints")
+
+--- a/Utilities/VTK/Applications/CMakeLists.txt
++++ b/Utilities/VTK/Applications/CMakeLists.txt
+@@ -25,6 +25,11 @@
+ )
+ endif()
+
++set(vtk_ioxml vtkIOXML)
++if( ${VTK_MAJOR_VERSION} GREATER_EQUAL 9 )
++ set(vtk_ioxml VTK::IOXML)
++endif()
++
+ foreach(app ${GDCM_VTK_APPS})
+ add_executable(${app} ${app}.cxx)
+ if(GDCM_EXECUTABLE_PROPERTIES)
+@@ -42,7 +47,7 @@
+ endif()
+ else()
+ # >= 6.0
+- target_link_libraries(${app} ${VTK_LIBRARIES} vtkIOXML)
++ target_link_libraries(${app} ${VTK_LIBRARIES} ${vtk_ioxml})
+ endif()
+ if(WIN32 AND NOT CYGWIN)
+ target_link_libraries(${app} gdcmgetopt)
+--- a/Utilities/VTK/vtkGDCMPolyDataWriter.cxx
++++ b/Utilities/VTK/vtkGDCMPolyDataWriter.cxx
+@@ -496,6 +496,9 @@
+ sqi = new SequenceOfItems;
+
+ vtkIdType npts = 0;
++#if VTK_MAJOR_VERSION >= 9
++ const
++#endif
+ vtkIdType *indx = 0;
+ double v[3];
+ unsigned int cellnum = 0;
+@@ -759,6 +762,9 @@
+ vtkPoints *pts;
+ vtkCellArray *polys;
+ vtkIdType npts = 0;
++#if VTK_MAJOR_VERSION >= 9
++ const
++#endif
+ vtkIdType *indx = 0;
+ pts = theData->GetPoints();
+ polys = theData->GetPolys();
diff --git a/sci-libs/gdcm/gdcm-3.0.14.ebuild b/sci-libs/gdcm/gdcm-3.0.14.ebuild
new file mode 100644
index 000000000..5249e81b7
--- /dev/null
+++ b/sci-libs/gdcm/gdcm-3.0.14.ebuild
@@ -0,0 +1,121 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..10} )
+
+inherit cmake python-single-r1
+
+DESCRIPTION="Cross-platform DICOM implementation"
+HOMEPAGE="http://gdcm.sourceforge.net/"
+SRC_URI="mirror://sourceforge/gdcm/${P}.tar.bz2
+ test? ( mirror://sourceforge/gdcm/gdcmData.tar.gz )" # 3.0.14: .bz2 is broken, should be checked in next release
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc python test vtk"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ app-text/poppler:0=[cxx]
+ dev-libs/expat:0=
+ dev-libs/json-c:0=
+ dev-libs/libxml2:2=
+ dev-libs/openssl:0=
+ >=media-libs/charls-2.0.0:0=
+ >=media-libs/openjpeg-2.0.0:2=
+ sys-apps/util-linux:0=
+ sys-libs/zlib:0=
+ python? ( ${PYTHON_DEPS} )
+ vtk? (
+ sci-libs/vtk[rendering]
+ python? (
+ sci-libs/vtk[python,${PYTHON_SINGLE_USEDEP}]
+ )
+ )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+ dev-libs/libxslt
+ app-text/docbook-xsl-ns-stylesheets
+ doc? ( app-doc/doxygen[dot] )
+ python? (
+ ${PYTHON_DEPS}
+ >=dev-lang/swig-3.0.7
+ )"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+PATCHES=(
+ "${FILESDIR}/gdcm_support_vtk9.patch"
+ "${FILESDIR}/gdcm-3.0.14-include-math-h.patch"
+)
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ # drop unbundled libs
+ local -a DROPS=( gdcmcharls gdcmexpat gdcmopenjpeg gdcmuuid gdcmzlib getopt pvrg KWStyle Release )
+ local x
+ for x in "${DROPS[@]}"; do
+ ebegin "Dropping bundled ${x#gdcm}"
+ rm -r "Utilities/${x}" || die
+ sed -i "s,^[ \t]*APPEND_COPYRIGHT(\\\${CMAKE_CURRENT_SOURCE_DIR}/${x}/,#&," "Utilities/CMakeLists.txt" || die
+ eend $?
+ done
+ find Utilities -mindepth 1 -maxdepth 1 '!' -name doxygen '!' -name VTK -type d \
+ -exec ewarn "Using bundled" {} ';' || die
+
+ # fix charls include case
+ sed -i 's:CharLS/charls\.h:charls/charls.h:' CMake/FindCharLS.cmake Utilities/gdcm_charls.h || die
+ sed -i 's:NAMES CharLS:NAMES charls:' CMake/FindCharLS.cmake || die
+
+ # Use prefixed socket++ (to avoid potential conflicts)
+ sed -i '/target_link_libraries(/s/socketxx/gdcm&/' \
+ Source/MessageExchangeDefinition/CMakeLists.txt \
+ Applications/Cxx/CMakeLists.txt \
+ || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_SKIP_RPATH=ON
+ -DGDCM_BUILD_SHARED_LIBS=ON
+ -DGDCM_DATA_ROOT="${WORKDIR}/gdcmData"
+ -DGDCM_INSTALL_LIB_DIR="$(get_libdir)"
+ -DGDCM_INSTALL_DOC_DIR="share/doc/${P}"
+ -DGDCM_INSTALL_PYTHONMODULE_DIR="lib/${EPYTHON}/site-packages"
+ -DGDCM_USE_SYSTEM_ZLIB=ON
+ -DGDCM_USE_SYSTEM_OPENSSL=ON
+ -DGDCM_USE_SYSTEM_UUID=ON
+ -DGDCM_USE_SYSTEM_EXPAT=ON
+ -DGDCM_USE_SYSTEM_JSON=ON
+ -DGDCM_USE_SYSTEM_PAPYRUS3=OFF
+ -DGDCM_USE_SYSTEM_SOCKETXX=OFF
+ -DSOCKETXX_NAMESPACE=GDCMSOCKETXX
+ -DGDCM_USE_SYSTEM_LJPEG=OFF
+ -DGDCM_USE_SYSTEM_OPENJPEG=ON
+ -DGDCM_USE_SYSTEM_CHARLS=ON
+ -DGDCM_USE_SYSTEM_POPPLER=ON
+ -DGDCM_USE_SYSTEM_LIBXML2=ON
+ -DGDCM_BUILD_TESTING=$(usex test)
+ -DGDCM_WRAP_PYTHON=$(usex python)
+ $(usex python "-DGDCM_DEFAULT_PYTHON_VERSION=${EPYTHON#python}" "")
+ -DGDCM_WRAP_PERL=OFF
+ -DGDCM_WRAP_PHP=OFF
+ -DGDCM_WRAP_JAVA=OFF
+ -DGDCM_WRAP_CSHARP=OFF
+ -DGDCM_DOCUMENTATION=$(usex doc)
+ $(usex doc "-DGDCM_PDF_DOCUMENTATION=OFF" "")
+ -DGDCM_BUILD_EXAMPLES=OFF
+ -DGDCM_BUILD_APPLICATIONS=ON
+ -DGDCM_USE_VTK=$(usex vtk)
+ )
+ cmake_src_configure
+}
diff --git a/sci-libs/gdcm/metadata.xml b/sci-libs/gdcm/metadata.xml
new file mode 100644
index 000000000..1845bf1bd
--- /dev/null
+++ b/sci-libs/gdcm/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>fx.carton91@gmail.com</email>
+ <name>François-Xavier Carton</name>
+ </maintainer>
+ <use>
+ <flag name="vtk">Build <pkg>sci-libs/vtk</pkg> bridge</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">gdcm</remote-id>
+ </upstream>
+</pkgmetadata>