diff --git a/sci-libs/itk/ChangeLog b/sci-libs/itk/ChangeLog new file mode 100644 index 0000000..8f9907f --- /dev/null +++ b/sci-libs/itk/ChangeLog @@ -0,0 +1,12 @@ +*itk-5.1.0 (09 Jan 2022) + + 09 Jan 2022; + +files/0001-BUG-Wrap-TransformFileReader-TransformFileWriter.patch, + +files/0002-COMP-Fixed-itkQuasiNewtonOptimizerv4-wrapping-warnin.patch, + +files/0003-COMP-Fixed-itkGradientDescentOptimizerv4-wrapping-wa.patch, + +files/0004-COMP-Warp-OptimizerParameterScalesEstimatorTemplate.patch, + +files/0005-make-gdcm-helper-library-static.patch, + +files/ITKModuleRemote.patch, +files/itk-5.1.0-downloads.patch, + +files/itk-5.1.0-include_limits.patch, +files/nrrdio-linking.patch, + +files/tests.patch, +itk-5.1.0.ebuild, +metadata.xml: + sci-libs/itk: trying to solve limits issue diff --git a/sci-libs/itk/Manifest b/sci-libs/itk/Manifest new file mode 100644 index 0000000..74570b6 --- /dev/null +++ b/sci-libs/itk/Manifest @@ -0,0 +1,6 @@ +DIST ITKGenericLabelInterpolator-5.1.0.tar.gz 140286 SHA256 84a045540f95a00e07df2123e9b9a7825ad0acece83a929639109a77e95435a1 SHA512 7bf6310e8b0ea2356ae8ce0ddd0bc3a1516aa6bb5e3e8df9ed0114f1bb2b299d2edd046f27dbae364082afc63e225a3691c794c93d347ee564db617ea3fbf489 WHIRLPOOL 0cd7bfde3d18dfbef7a798c4cbb17bf444bfab93b5b4887cdc0d244e2aef07ebe1b1af796f5f49c768af3568d3f96aed6aaaf5d23fb5553cb83b4fc6474b54fe +DIST InsightData-5.1.0.tar.gz 292322103 SHA256 777f587c587b47d76157a0ee87a5942b944742f334b801abe0e6dc1ad1d8424f SHA512 458c2959ba5e0745eee23e16ff7178230a7bae94d7dff065b3b38136e238becff96554693e3b2149d2307949c23a6c695c92676f8d44e6f7305dbb8bed48c9fa WHIRLPOOL d5785f862c627cabc97c469ac9fb84d1493e1827fd993c68ed5019e7062adc7fe68efe6ab2471c7c6b2a9d542cbfdb1a00c6633fa7be498cbc9e09fa12d3710a +DIST InsightToolkit-5.1.0.tar.gz 20694338 SHA256 121020a1611508cec8123eb5226215598cec07be627d843a2e6b6da891e61d13 SHA512 413b6ef549b59d8f507038130446ccb704794c6d0980d8ab631d1b1051cb91f399e77c26b69fab6a1e9b9bb4cc233d49996c3ee735cd4de065993d4379b4ed4c WHIRLPOOL bbe7368cc46dc1a0869d8ab47218d0777e689be17114048653a537fbe792dfc0eb0e687b06fa894218cc35ef95143df75a46c17ffd6b072233e9f72a3c811825 +DIST itk-5.1.0-test-a5e11ea71164ff78c65fcf259db01ea5db981a9d868e60045ff2bffca92984df1174bf984a1076e450f0d5d69b4f0191ed1a61465c220e2c91a893b5df150c0a 1017 SHA256 d5e1b340676b07c4d08dd8938280c8ec490620a88ae8b3d3798975ed83506985 SHA512 e69c77894cab5b295ec5edbecdf693525ec9a4673810b87cbc28646ea40888b7792b5707840069e277905c8b0014bd84ecea036836f87c3b16f388f544e34341 WHIRLPOOL 2908b4ea8ec516bbe9fd290cd5aa03262418c0028128c0d575e1b855e9dc1af2c818d6c59c879c153f5f02e67ff8cbf902a5e3076dca6dc6d7de3dce28d318bc +DIST itk-5.1.0-test-bcdbb347f3704262d1f00be7179d6a0a6e68aed56c0653e8072ee5a94985c713bd229c935b1226a658af84fb7f1fffc2458c98364fc35303a2303b12f9f7ce2f 1018 SHA256 339345972050e6fabad649438852811612b80f35626d1b88dd6361296a21b036 SHA512 27952af5d6243aa31c187280ea9ba82c434db3614b3db3b406fe8e5c7e4b7e333bc179d5d9956d5a17aa670a7aa7cfce037d37c4225125e703602e322d8ec68b WHIRLPOOL 47f28fdb11ce0444763f91f7c295f2574da04d11bc6b8fdb65fb0ac35ee97f8d8706e7a20259030bcef517c07c8e6312825ea500d2396c3547836169cdde5491 +DIST itk-5.1.0-testingdata.tar.gz 2409232372 SHA256 bac8365cb56a6c5f68e565445e00012f31453b06e8f7879bc7c3238796a67948 SHA512 8b451608cb3f75d3ba6a78fd23e79495948c2792a98d831e0f0c93745595df84d3c2a8d76389976f67ac7e7e1f5a44a18d201e51d2ee659cdb708ae28536df8f WHIRLPOOL 4c9f65bb51a0714a24db6c1e739fff32b454e0289135cd190146df0fd6dece736ff348d9aeae388dff8ce9ccc9010c979f1a6051065f92bbb0bc98c8628aab4e diff --git a/sci-libs/itk/files/0001-BUG-Wrap-TransformFileReader-TransformFileWriter.patch b/sci-libs/itk/files/0001-BUG-Wrap-TransformFileReader-TransformFileWriter.patch new file mode 100644 index 0000000..094ee32 --- /dev/null +++ b/sci-libs/itk/files/0001-BUG-Wrap-TransformFileReader-TransformFileWriter.patch @@ -0,0 +1,50 @@ +From d069b7b94287dae15fcaf707775f5dd2bbebcc38 Mon Sep 17 00:00:00 2001 +From: Matt McCormick +Date: Wed, 5 Feb 2014 15:52:34 -0500 +Subject: [PATCH 1/3] BUG: Wrap TransformFileReader, TransformFileWriter. + +Missing CMakeLists.txt in the wrapping directory. Need to explicitly include +the headers after "Template" was appended to the class name. + +Suggested-by: Sami Koho + +Change-Id: I6f994bb18f37d5adf1d0f0311fa73506c41239a7 +--- + Modules/IO/TransformBase/wrapping/CMakeLists.txt | 3 +++ + Modules/IO/TransformBase/wrapping/itkTransformFileReader.wrap | 2 ++ + Modules/IO/TransformBase/wrapping/itkTransformFileWriter.wrap | 2 ++ + 3 files changed, 7 insertions(+) + create mode 100644 Modules/IO/TransformBase/wrapping/CMakeLists.txt + +diff --git a/Modules/IO/TransformBase/wrapping/CMakeLists.txt b/Modules/IO/TransformBase/wrapping/CMakeLists.txt +new file mode 100644 +index 0000000..6072567 +--- /dev/null ++++ b/Modules/IO/TransformBase/wrapping/CMakeLists.txt +@@ -0,0 +1,3 @@ ++itk_wrap_module(ITKIOTransformBase) ++itk_auto_load_submodules() ++itk_end_wrap_module() +diff --git a/Modules/IO/TransformBase/wrapping/itkTransformFileReader.wrap b/Modules/IO/TransformBase/wrapping/itkTransformFileReader.wrap +index 9b52fbc..662df9e 100644 +--- a/Modules/IO/TransformBase/wrapping/itkTransformFileReader.wrap ++++ b/Modules/IO/TransformBase/wrapping/itkTransformFileReader.wrap +@@ -1,3 +1,5 @@ ++set(WRAPPER_AUTO_INCLUDE_HEADERS OFF) ++itk_wrap_include("itkTransformFileReader.h") + itk_wrap_class("itk::TransformFileReaderTemplate" POINTER) + foreach(t ${WRAP_ITK_REAL}) + itk_wrap_template("${ITKM_${t}}" "${ITKT_${t}}") +diff --git a/Modules/IO/TransformBase/wrapping/itkTransformFileWriter.wrap b/Modules/IO/TransformBase/wrapping/itkTransformFileWriter.wrap +index 4f1ac4a..356aaf3 100644 +--- a/Modules/IO/TransformBase/wrapping/itkTransformFileWriter.wrap ++++ b/Modules/IO/TransformBase/wrapping/itkTransformFileWriter.wrap +@@ -1,3 +1,5 @@ ++set(WRAPPER_AUTO_INCLUDE_HEADERS OFF) ++itk_wrap_include("itkTransformFileWriter.h") + itk_wrap_class("itk::TransformFileWriterTemplate" POINTER) + foreach(t ${WRAP_ITK_REAL}) + itk_wrap_template("${ITKM_${t}}" "${ITKT_${t}}") +-- +1.8.5.3 + diff --git a/sci-libs/itk/files/0002-COMP-Fixed-itkQuasiNewtonOptimizerv4-wrapping-warnin.patch b/sci-libs/itk/files/0002-COMP-Fixed-itkQuasiNewtonOptimizerv4-wrapping-warnin.patch new file mode 100644 index 0000000..4c74d54 --- /dev/null +++ b/sci-libs/itk/files/0002-COMP-Fixed-itkQuasiNewtonOptimizerv4-wrapping-warnin.patch @@ -0,0 +1,28 @@ +From 66d2955fbe5528d9df216c639277d1d2686447e5 Mon Sep 17 00:00:00 2001 +From: Michka Popoff +Date: Fri, 7 Feb 2014 19:24:49 +0100 +Subject: [PATCH 2/3] COMP: Fixed itkQuasiNewtonOptimizerv4 wrapping warnings + +The warning : +/scratch/dashboards/Linux-x86_64-gcc4.4-WrapITK/ITK-build/Wrapping/Modules/ITKOptimizersv4/itkQuasiNewtonOptimizerv4.xml: warning(5): Unknown type type: itk::QuasiNewtonOptimizerv4 [typedef] +/scratch/dashboards/Linux-x86_64-gcc4.4-WrapITK/ITK-build/Wrapping/Modules/ITKOptimizersv4/itkQuasiNewtonOptimizerv4.xml: warning(4): ITK type not wrapped, or currently not known: itk::QuasiNewtonOptimizerv4Template< double > +--- + .../Numerics/Optimizersv4/wrapping/itkQuasiNewtonOptimizerv4.wrap | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/Modules/Numerics/Optimizersv4/wrapping/itkQuasiNewtonOptimizerv4.wrap b/Modules/Numerics/Optimizersv4/wrapping/itkQuasiNewtonOptimizerv4.wrap +index 4a43dd4..7eed11c 100644 +--- a/Modules/Numerics/Optimizersv4/wrapping/itkQuasiNewtonOptimizerv4.wrap ++++ b/Modules/Numerics/Optimizersv4/wrapping/itkQuasiNewtonOptimizerv4.wrap +@@ -1 +1,7 @@ +-itk_wrap_simple_class("itk::QuasiNewtonOptimizerv4" POINTER) ++set(WRAPPER_AUTO_INCLUDE_HEADERS OFF) ++itk_wrap_include("itkQuasiNewtonOptimizerv4.h") ++itk_wrap_class("itk::QuasiNewtonOptimizerv4Template" POINTER) ++ foreach(t ${WRAP_ITK_REAL}) ++ itk_wrap_template("${ITKM_${t}}" "${ITKT_${t}}") ++ endforeach(t) ++itk_end_wrap_class() +-- +1.8.5.3 + diff --git a/sci-libs/itk/files/0003-COMP-Fixed-itkGradientDescentOptimizerv4-wrapping-wa.patch b/sci-libs/itk/files/0003-COMP-Fixed-itkGradientDescentOptimizerv4-wrapping-wa.patch new file mode 100644 index 0000000..d77345e --- /dev/null +++ b/sci-libs/itk/files/0003-COMP-Fixed-itkGradientDescentOptimizerv4-wrapping-wa.patch @@ -0,0 +1,73 @@ +From fced46ce8769b4edc7971ea0928045390b5c3f84 Mon Sep 17 00:00:00 2001 +From: Michka Popoff +Date: Mon, 10 Feb 2014 09:41:42 +0100 +Subject: [PATCH 3/3] COMP: Fixed itkGradientDescentOptimizerv4 wrapping + warnings + +I splitted the 3 wrapping calls in 3 separate files and fixed the wrapping. + +The warnings : +/home/kevin/kitware/ITK_Build/Wrapping/Modules/ITKOptimizersv4/itkGradientDescentOptimizerv4.xml: warning(5): Unknown type type: itk::GradientDescentOptimizerBasev4 [typedef] +/home/kevin/kitware/ITK_Build/Wrapping/Modules/ITKOptimizersv4/itkGradientDescentOptimizerv4.xml: warning(5): Unknown type type: itk::GradientDescentOptimizerv4 [typedef] +/home/kevin/kitware/ITK_Build/Wrapping/Modules/ITKOptimizersv4/itkGradientDescentOptimizerv4.xml: warning(5): Unknown type type: itk::ObjectToObjectOptimizerBase [typedef] +/home/kevin/kitware/ITK_Build/Wrapping/Modules/ITKOptimizersv4/itkGradientDescentOptimizerv4.xml: warning(4): ITK type not wrapped, or currently not known: itk::GradientDescentOptimizerBasev4Template< double > +/home/kevin/kitware/ITK_Build/Wrapping/Modules/ITKOptimizersv4/itkGradientDescentOptimizerv4.xml: warning(4): ITK type not wrapped, or currently not known: itk::GradientDescentOptimizerv4Template< double > +/home/kevin/kitware/ITK_Build/Wrapping/Modules/ITKOptimizersv4/itkGradientDescentOptimizerv4.xml: warning(4): ITK type not wrapped, or currently not known: itk::ObjectToObjectOptimizerBaseTemplate< double > + +Should also hopefully fix the new error on the dashboard I introduced by fixing the itkQuasiNewtonOptimizerv4 warnings (http://review.source.kitware.com/#/c/14317/) +/home/kevin/kitware/ITK_Build/Wrapping/Typedefs/itkQuasiNewtonOptimizerv4.i:87: Warning 401: Nothing known about base class 'itk::GradientDescentOptimizerv4Template< float >'. Ignored. +/home/kevin/kitware/ITK_Build/Wrapping/Typedefs/itkQuasiNewtonOptimizerv4.i:87: Warning 401: Maybe you forgot to instantiate 'itk::GradientDescentOptimizerv4Template< float >' using %template. + +Change-Id: I15b6af11690ed6efeaced68f73af5212ab5dc364 +--- + .../wrapping/itkGradientDescentOptimizerBasev4.wrap | 7 +++++++ + .../Optimizersv4/wrapping/itkGradientDescentOptimizerv4.wrap | 10 +++++++--- + .../Optimizersv4/wrapping/itkObjectToObjectOptimizerBase.wrap | 7 +++++++ + 3 files changed, 21 insertions(+), 3 deletions(-) + create mode 100644 Modules/Numerics/Optimizersv4/wrapping/itkGradientDescentOptimizerBasev4.wrap + create mode 100644 Modules/Numerics/Optimizersv4/wrapping/itkObjectToObjectOptimizerBase.wrap + +diff --git a/Modules/Numerics/Optimizersv4/wrapping/itkGradientDescentOptimizerBasev4.wrap b/Modules/Numerics/Optimizersv4/wrapping/itkGradientDescentOptimizerBasev4.wrap +new file mode 100644 +index 0000000..74f5a6c +--- /dev/null ++++ b/Modules/Numerics/Optimizersv4/wrapping/itkGradientDescentOptimizerBasev4.wrap +@@ -0,0 +1,7 @@ ++set(WRAPPER_AUTO_INCLUDE_HEADERS OFF) ++itk_wrap_include("itkGradientDescentOptimizerBasev4.h") ++itk_wrap_class("itk::GradientDescentOptimizerBasev4Template" POINTER) ++ foreach(t ${WRAP_ITK_REAL}) ++ itk_wrap_template("${ITKM_${t}}" "${ITKT_${t}}") ++ endforeach(t) ++itk_end_wrap_class() +diff --git a/Modules/Numerics/Optimizersv4/wrapping/itkGradientDescentOptimizerv4.wrap b/Modules/Numerics/Optimizersv4/wrapping/itkGradientDescentOptimizerv4.wrap +index d53a176..3236448 100644 +--- a/Modules/Numerics/Optimizersv4/wrapping/itkGradientDescentOptimizerv4.wrap ++++ b/Modules/Numerics/Optimizersv4/wrapping/itkGradientDescentOptimizerv4.wrap +@@ -1,3 +1,7 @@ +-itk_wrap_simple_class("itk::ObjectToObjectOptimizerBase" POINTER) +-itk_wrap_simple_class("itk::GradientDescentOptimizerBasev4" POINTER) +-itk_wrap_simple_class("itk::GradientDescentOptimizerv4" POINTER) ++set(WRAPPER_AUTO_INCLUDE_HEADERS OFF) ++itk_wrap_include("itkGradientDescentOptimizerv4.h") ++itk_wrap_class("itk::GradientDescentOptimizerv4Template" POINTER) ++ foreach(t ${WRAP_ITK_REAL}) ++ itk_wrap_template("${ITKM_${t}}" "${ITKT_${t}}") ++ endforeach(t) ++itk_end_wrap_class() +diff --git a/Modules/Numerics/Optimizersv4/wrapping/itkObjectToObjectOptimizerBase.wrap b/Modules/Numerics/Optimizersv4/wrapping/itkObjectToObjectOptimizerBase.wrap +new file mode 100644 +index 0000000..61b2c44 +--- /dev/null ++++ b/Modules/Numerics/Optimizersv4/wrapping/itkObjectToObjectOptimizerBase.wrap +@@ -0,0 +1,7 @@ ++set(WRAPPER_AUTO_INCLUDE_HEADERS OFF) ++itk_wrap_include("itkObjectToObjectOptimizerBase.h") ++itk_wrap_class("itk::ObjectToObjectOptimizerBaseTemplate" POINTER) ++ foreach(t ${WRAP_ITK_REAL}) ++ itk_wrap_template("${ITKM_${t}}" "${ITKT_${t}}") ++ endforeach(t) ++itk_end_wrap_class() +-- +1.8.5.3 + diff --git a/sci-libs/itk/files/0004-COMP-Warp-OptimizerParameterScalesEstimatorTemplate.patch b/sci-libs/itk/files/0004-COMP-Warp-OptimizerParameterScalesEstimatorTemplate.patch new file mode 100644 index 0000000..83b3956 --- /dev/null +++ b/sci-libs/itk/files/0004-COMP-Warp-OptimizerParameterScalesEstimatorTemplate.patch @@ -0,0 +1,30 @@ +Author: Matt McCormick +Date: Thu Feb 6 10:26:49 2014 -0500 + + COMP: Wrap OptimizerParameterScalesEstimatorTemplate. + + The class name changed and it became templated. Fixes: + + /playpen/blowekamp/MacOSX-WrapITK/ITK-build/Wrapping/Modules/ITKOptimizersv4/itkOptimizerParameterScalesEstimator.xml: + warning(5): Unknown type type: itk::OptimizerParameterScalesEstimator + [typedef] + /playpen/blowekamp/MacOSX-WrapITK/ITK-build/Wrapping/Modules/ITKOptimizersv4/itkOptimizerParameterScalesEstimator.xml: + warning(4): ITK type not wrapped, or currently not known: + itk::OptimizerParameterScalesEstimatorTemplate< double > + + Change-Id: Ic6b4d6fba10d5d6c7b58de8d842bad6511e1ae7b + +diff --git a/Modules/Numerics/Optimizersv4/wrapping/itkOptimizerParameterScalesEstimator.wrap b/Modules/Numerics/Optimizersv4/wrapping/itkOptim +index efd6a8c..a647ee4 100644 +--- a/Modules/Numerics/Optimizersv4/wrapping/itkOptimizerParameterScalesEstimator.wrap ++++ b/Modules/Numerics/Optimizersv4/wrapping/itkOptimizerParameterScalesEstimator.wrap +@@ -1 +1,7 @@ +-itk_wrap_simple_class("itk::OptimizerParameterScalesEstimator" POINTER) ++set(WRAPPER_AUTO_INCLUDE_HEADERS OFF) ++itk_wrap_include("itkOptimizerParameterScalesEstimator.h") ++itk_wrap_class("itk::OptimizerParameterScalesEstimatorTemplate" POINTER) ++ foreach(t ${WRAP_ITK_REAL}) ++ itk_wrap_template("${ITKM_${t}}" "${ITKT_${t}}") ++ endforeach(t) ++itk_end_wrap_class() + diff --git a/sci-libs/itk/files/0005-make-gdcm-helper-library-static.patch b/sci-libs/itk/files/0005-make-gdcm-helper-library-static.patch new file mode 100644 index 0000000..d760ac7 --- /dev/null +++ b/sci-libs/itk/files/0005-make-gdcm-helper-library-static.patch @@ -0,0 +1,11 @@ +diff --git a/Modules/ThirdParty/GDCM/src/CMakeLists.txt b/Modules/ThirdParty/GDCM/src/CMakeLists.txt +index e98077c..70f4286 100644 +--- a/Modules/ThirdParty/GDCM/src/CMakeLists.txt ++++ b/Modules/ThirdParty/GDCM/src/CMakeLists.txt +@@ -1,5 +1,5 @@ + if(ITK_USE_SYSTEM_GDCM) +- add_library(ITKGDCM ITK-GDCM.cxx) ++ add_library(ITKGDCM STATIC ITK-GDCM.cxx) + target_link_libraries(ITKGDCM gdcmDICT gdcmMSFF) + itk_module_target(ITKGDCM) + return() diff --git a/sci-libs/itk/files/ITKModuleRemote.patch b/sci-libs/itk/files/ITKModuleRemote.patch new file mode 100644 index 0000000..eb13015 --- /dev/null +++ b/sci-libs/itk/files/ITKModuleRemote.patch @@ -0,0 +1,45 @@ +Disable automatic git clone attempt for modules: +https://github.com/InsightSoftwareConsortium/ITK/issues/1157 + +--- a/CMake/ITKModuleRemote.cmake 2019-08-13 18:10:33.385472767 +0200 ++++ b/CMake/ITKModuleRemote.cmake 2019-08-13 18:12:04.020198966 +0200 +@@ -165,39 +165,4 @@ + set(Module_${_name} ON CACHE FORCE "${_description}") + endif() + +- if(Module_${_name}) +- itk_download_attempt_check(Module_${_name}) +- include(CMakeParseArguments) +- cmake_parse_arguments(_fetch_options "" "GIT_REPOSITORY;GIT_TAG" "" ${ARGN}) +- find_package(Git) +- if(NOT GIT_EXECUTABLE) +- message(FATAL_ERROR "error: could not find git for clone of ${_name}") +- endif() +- execute_process( +- COMMAND "${GIT_EXECUTABLE}" --version +- OUTPUT_VARIABLE ov +- OUTPUT_STRIP_TRAILING_WHITESPACE +- ) +- string(REGEX REPLACE "^git version (.+)$" "\\1" _version "${ov}") +- if("${_version}" VERSION_LESS 1.6.6) +- message(FATAL_ERROR "Git version 1.6.6 or later is required.") +- endif() +- +- set(REMOTE_GIT_TAG "${_fetch_options_GIT_TAG}") +- +- if( DEFINED REMOTE_GIT_TAG_${_name} AND NOT "${REMOTE_GIT_TAG_${_name}}" STREQUAL "${_fetch_options_GIT_TAG}") +- set(REMOTE_GIT_TAG "${REMOTE_GIT_TAG_${_name}}") +- message(STATUS "NOTE: Using override 'REMOTE_GIT_TAG_${_name}=${REMOTE_GIT_TAG}'\n" +- " instead of value 'GIT_TAG=${_fetch_options_GIT_TAG}'\n" +- " specified in file ${ITK_SOURCE_DIR}/Modules/Remote/${_name}.remote.cmake'") +- endif() +- set(REMOTE_GIT_TAG_${_name} "${REMOTE_GIT_TAG}" CACHE STRING "Override default GIT_TAG value for remote module ${_name}") +- mark_as_advanced(REMOTE_GIT_TAG_${_name}) +- +- _fetch_with_git("${GIT_EXECUTABLE}" +- "${_fetch_options_GIT_REPOSITORY}" +- "${REMOTE_GIT_TAG}" +- "${ITK_SOURCE_DIR}/Modules/Remote/${_name}" +- ) +- endif() + endfunction() diff --git a/sci-libs/itk/files/itk-5.1.0-downloads.patch b/sci-libs/itk/files/itk-5.1.0-downloads.patch new file mode 100644 index 0000000..34fdb76 --- /dev/null +++ b/sci-libs/itk/files/itk-5.1.0-downloads.patch @@ -0,0 +1,20 @@ +--- a/CMake/ITKDownloadSetup.cmake 2020-07-30 19:03:10.330325423 -0400 ++++ b/CMake/ITKDownloadSetup.cmake 2020-07-30 19:03:10.330325423 -0400 +@@ -11,7 +11,7 @@ + + macro(itk_download_attempt_check _name) + if(ITK_FORBID_DOWNLOADS) +- message(SEND_ERROR "Attempted to download ${_name} when ITK_FORBID_DOWNLOADS is ON") ++ message(WARNING "Attempted to download ${_name} when ITK_FORBID_DOWNLOADS is ON") + endif() + endmacro() + +--- a/Modules/Remote/GenericLabelInterpolator.remote.cmake 2020-04-25 14:30:53.000000000 -0400 ++++ b/Modules/Remote/GenericLabelInterpolator.remote.cmake 2020-04-25 14:30:53.000000000 -0400 +@@ -44,6 +44,4 @@ + itk_fetch_module(GenericLabelInterpolator + "A generic interpolator for multi-label images." + MODULE_COMPLIANCE_LEVEL 2 +- GIT_REPOSITORY ${git_protocol}://github.com/InsightSoftwareConsortium/ITKGenericLabelInterpolator.git +- GIT_TAG b95fe46c7f4fe8002af67c67e6fe4e1f087bf6b7 + ) diff --git a/sci-libs/itk/files/itk-5.1.0-include_limits.patch b/sci-libs/itk/files/itk-5.1.0-include_limits.patch new file mode 100644 index 0000000..a1e3cb4 --- /dev/null +++ b/sci-libs/itk/files/itk-5.1.0-include_limits.patch @@ -0,0 +1,10 @@ +--- a/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageChangePhotometricInterpretation.h ++++ a/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageChangePhotometricInterpretation.h +@@ -16,6 +16,7 @@ + + #include "gdcmImageToImageFilter.h" + #include "gdcmPhotometricInterpretation.h" ++#include + + namespace gdcm + { diff --git a/sci-libs/itk/files/nrrdio-linking.patch b/sci-libs/itk/files/nrrdio-linking.patch new file mode 100644 index 0000000..a549650 --- /dev/null +++ b/sci-libs/itk/files/nrrdio-linking.patch @@ -0,0 +1,15 @@ +Description: Link libITKNrrdIO with -lm (needed for sqrt) +Author: Steve Robbins +Forwarded: no + +--- insighttoolkit4-4.5.0.orig/Modules/ThirdParty/NrrdIO/src/NrrdIO/CMakeLists.txt ++++ insighttoolkit4-4.5.0/Modules/ThirdParty/NrrdIO/src/NrrdIO/CMakeLists.txt +@@ -64,7 +64,7 @@ + ADD_DEFINITIONS(-DTEEM_ZLIB=1) + + ADD_LIBRARY(ITKNrrdIO ${nrrdio_SRCS} ) +-TARGET_LINK_LIBRARIES(ITKNrrdIO ${ITKZLIB_LIBRARIES}) ++TARGET_LINK_LIBRARIES(ITKNrrdIO ${ITKZLIB_LIBRARIES} -lm) + + IF(ITK_LIBRARY_PROPERTIES) + SET_TARGET_PROPERTIES(ITKNrrdIO PROPERTIES ${ITK_LIBRARY_PROPERTIES}) diff --git a/sci-libs/itk/files/tests.patch b/sci-libs/itk/files/tests.patch new file mode 100644 index 0000000..c24714e --- /dev/null +++ b/sci-libs/itk/files/tests.patch @@ -0,0 +1,41 @@ +Known to fail by upstream: +https://github.com/InsightSoftwareConsortium/ITK/issues/1212#issuecomment-527998115 + +--- a/Modules/Bridge/VtkGlue/test/CMakeLists.txt 2019-09-09 00:45:14.736032139 +0200 ++++ b/Modules/Bridge/VtkGlue/test/CMakeLists.txt 2019-09-09 00:49:42.183935497 +0200 +@@ -7,8 +7,6 @@ + if(NOT VTK_RENDERING_BACKEND STREQUAL "None") + list(APPEND ITKVtkGlueTests + itkVtkMedianFilterTest.cxx +- itkVtkConnectedComponentImageFilterTest.cxx +- QuickViewTest.cxx + # ### runViewImage ### + # No test generated. Use it for view images (2D or 3D) with: + # ITKVtkGlueTestDriver runViewImage image_file +@@ -40,26 +38,3 @@ + NAME itkVTKImageToImageFilterTest + COMMAND ITKVtkGlueTestDriver + itkVTKImageToImageFilterTest) +- +-if(NOT VTK_RENDERING_BACKEND STREQUAL "None") +- itk_add_test( +- NAME itkVtkMedianImageFilterTest +- COMMAND ITKVtkGlueTestDriver +- itkVtkMedianFilterTest DATA{${ITK_DATA_ROOT}/Input/cthead1.png} 2) +- set_property(TEST itkVtkMedianImageFilterTest APPEND PROPERTY LABELS REQUIRES_DISPLAY) +- +- itk_add_test( +- NAME QuickViewTest +- COMMAND ITKVtkGlueTestDriver +- --compare DATA{Baseline/QuickViewTest.png,:} +- ${ITK_TEST_OUTPUT_DIR}/QuickViewTest0.png +- --compareNumberOfPixelsTolerance 1500 +- QuickViewTest DATA{${ITK_DATA_ROOT}/Input/peppers.png} ${ITK_TEST_OUTPUT_DIR}) +- set_property(TEST QuickViewTest APPEND PROPERTY LABELS REQUIRES_DISPLAY) +- +- itk_add_test( +- NAME itkVtkConnectedComponentImageFilterTest +- COMMAND ITKVtkGlueTestDriver +- itkVtkConnectedComponentImageFilterTest DATA{${ITK_DATA_ROOT}/Input/cthead1.png}) +- set_property(TEST itkVtkConnectedComponentImageFilterTest APPEND PROPERTY LABELS REQUIRES_DISPLAY) +-endif() diff --git a/sci-libs/itk/itk-5.1.0.ebuild b/sci-libs/itk/itk-5.1.0.ebuild new file mode 100644 index 0000000..0f46dc4 --- /dev/null +++ b/sci-libs/itk/itk-5.1.0.ebuild @@ -0,0 +1,191 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{7,8,9} ) + +inherit cmake python-single-r1 + +MY_PN="InsightToolkit" +MY_P="${MY_PN}-${PV}" +GLI_HASH="a02cbeaf28cb3d28ac66b9ac651073530eb6ab78" +TEST_HASH="0eb202e23ae81be123b1b26cf31a9ba743824700" +declare -a GLI_TEST_HASHES=( + "a5e11ea71164ff78c65fcf259db01ea5db981a9d868e60045ff2bffca92984df1174bf984a1076e450f0d5d69b4f0191ed1a61465c220e2c91a893b5df150c0a" + "bcdbb347f3704262d1f00be7179d6a0a6e68aed56c0653e8072ee5a94985c713bd229c935b1226a658af84fb7f1fffc2458c98364fc35303a2303b12f9f7ce2f" +) + +GLI_TEST_SRC="" +for i in "${GLI_TEST_HASHES[@]}"; do + GLI_TEST_SRC+="https://data.kitware.com/api/v1/file/hashsum/sha512/${i} -> ${P}-test-${i} " +done + +DESCRIPTION="NLM Insight Segmentation and Registration Toolkit" +HOMEPAGE="http://www.itk.org" +SRC_URI=" + https://github.com/InsightSoftwareConsortium/ITK/releases/download/v${PV}/${MY_P}.tar.gz + https://github.com/InsightSoftwareConsortium/ITKGenericLabelInterpolator/archive/${GLI_HASH}.tar.gz -> ITKGenericLabelInterpolator-${PV}.tar.gz + test? ( + https://github.com/InsightSoftwareConsortium/ITK/releases/download/v${PV}/InsightData-${PV}.tar.gz + https://github.com/InsightSoftwareConsortium/ITKTestingData/archive/${TEST_HASH}.tar.gz -> ${P}-testingdata.tar.gz + ${GLI_TEST_SRC} + ) + " + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="debug doc examples fftw itkv4-compat python review test vtkglue" +RESTRICT="!test? ( test )" +# python will not work, this is a know issue upstream: +# https://github.com/InsightSoftwareConsortium/ITK/issues/2005 +# https://github.com/InsightSoftwareConsortium/ITK/issues/1229 +# https://github.com/InsightSoftwareConsortium/ITKGenericLabelInterpolator/issues/10 + +RDEPEND=" + dev-libs/double-conversion:0= + media-libs/openjpeg:2 + media-libs/libpng:0= + media-libs/tiff:0=[jpeg] + sci-libs/dcmtk:0= + sci-libs/hdf5:0=[cxx] + sys-libs/zlib:0= + virtual/jpeg:0= + fftw? ( sci-libs/fftw:3.0= ) + vtkglue? ( sci-libs/vtk:0=[rendering,python?] ) + python? ( ${PYTHON_DEPS} ) +" +DEPEND="${RDEPEND} + sys-apps/coreutils + python? ( + >=dev-lang/swig-2.0:0 + dev-cpp/castxml + ) + doc? ( app-doc/doxygen ) +" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}"/tests.patch + "${FILESDIR}"/${P}-downloads.patch + "${FILESDIR}"/${P}-include_limits.patch +) + +pkg_pretend() { + if [[ -z ${ITK_COMPUTER_MEMORY_SIZE} ]]; then + elog "To tune ITK to make the best use of working memory you can set" + elog " ITK_COMPUTER_MEMORY_SIZE=XX" + elog "in make.conf, default is 1 (unit is GB)" + fi + if use python && [[ -z ${ITK_WRAP_DIMS} ]]; then + elog "For Python language bindings, you can define the dimensions" + elog "you want to create bindings for by setting" + elog " ITK_WRAP_DIMS=X;Y;Z..." + elog "in make.conf, default is 2;3 for 2D and 3D data" + fi +} + +src_prepare() { + sed -i -e "s/find_package(OpenJPEG 2.0.0/find_package(OpenJPEG/g"\ + Modules/ThirdParty/GDCM/src/gdcm/CMakeLists.txt + ln -sr ../ITKGenericLabelInterpolator-* Modules/External/ITKGenericLabelInterpolator || die + cmake_src_prepare + if use test; then + cp -rf "../ITKTestingData-${TEST_HASH}/"* ".ExternalData/" || die + mv "../ITKTestingData-${TEST_HASH}" "${BUILD_DIR}/.ExternalData" || die + for i in "${GLI_TEST_HASHES[@]}"; do + cp "${DISTDIR}/${i}" ".ExternalData/SHA512/" || die + cp "${DISTDIR}/${i}" "${BUILD_DIR}/.ExternalData/SHA512/" || die + done + fi +} + +src_configure() { + local mycmakeargs=( + -DITK_BUILD_DOCUMENTATION="$(usex doc ON OFF)" + -DBUILD_EXAMPLES="$(usex examples ON OFF)" + -DBUILD_SHARED_LIBS=ON + -DBUILD_TESTING="$(usex test ON OFF)" + -Ddouble-conversion_INCLUDE_DIRS="${EPREFIX}/usr/include/double-conversion" + -DExternalData_OBJECT_STORES="${WORKDIR}/InsightToolkit-${PV}/.ExternalData" + -DGDCM_USE_SYSTEM_OPENJPEG=ON + -DITK_FORBID_DOWNLOADS:BOOL=ON + -DITK_INSTALL_LIBRARY_DIR=$(get_libdir) + -DITK_USE_REVIEW="$(usex review ON OFF)" + -DITK_USE_SYSTEM_DCMTK=ON + -DITK_USE_SYSTEM_DOUBLECONVERSION=ON + -DITK_USE_SYSTEM_CASTXML=ON + -DITK_USE_SYSTEM_HDF5=ON + -DITK_USE_SYSTEM_JPEG=ON + -DITK_USE_SYSTEM_PNG=ON + -DITK_USE_SYSTEM_SWIG=ON + -DITK_USE_SYSTEM_TIFF=ON + -DITK_USE_SYSTEM_ZLIB=ON + -DITK_USE_KWSTYLE=OFF + -DITK_BUILD_DEFAULT_MODULES=ON + -DITK_COMPUTER_MEMORY_SIZE="${ITK_COMPUTER_MEMORY_SIZE:-1}" + -DModule_GenericLabelInterpolator:BOOL=ON + -DModule_ITKReview:BOOL=ON + -DWRAP_ITK_JAVA=OFF + -DWRAP_ITK_TCL=OFF + -DITKV4_COMPATIBILITY:BOOL=$(usex itkv4-compat) + ) + if use fftw; then + mycmakeargs+=( + -DUSE_FFTWD=ON + -DUSE_FFTWF=ON + -DUSE_SYSTEM_FFTW=ON + -DITK_WRAP_double=ON + -DITK_WRAP_vector_double=ON + -DITK_WRAP_covariant_vector_double=ON + -DITK_WRAP_complex_double=ON + ) + fi + if use vtkglue; then + mycmakeargs+=( + -DModule_ITKVtkGlue=ON + ) + fi + if use python; then + mycmakeargs+=( + -DITK_WRAP_PYTHON=ON + -DITK_WRAP_DIMS="${ITK_WRAP_DIMS:-2;3}" + ) + else + mycmakeargs+=( + -DITK_WRAP_PYTHON=OFF + ) + fi + cmake_src_configure +} + +src_install() { + cmake_src_install + + if use examples; then + docinto examples + docompress -x /usr/share/doc/${PF}/examples + dodoc -r "${S}"/Examples/* + fi + + echo "ITK_DATA_ROOT=${EROOT}/usr/share/${PN}/data" > ${T}/40${PN} + local ldpath="${EROOT}/usr/$(get_libdir)/InsightToolkit" + if use python; then + echo "PYTHONPATH=${EROOT}/usr/$(get_libdir)/InsightToolkit/WrapITK/Python" >> "${T}"/40${PN} + ldpath="${ldpath}:${EROOT}/usr/$(get_libdir)/InsightToolkit/WrapITK/lib" + fi + echo "LDPATH=${ldpath}" >> "${T}"/40${PN} + doenvd "${T}"/40${PN} + + if use doc; then + cd "${WORKDIR}"/html || die + rm *.md5 || die "Failed to remove superfluous hashes" + einfo "Installing API docs. This may take some time." + docinto api-docs + dodoc -r * + fi +} diff --git a/sci-libs/itk/metadata.xml b/sci-libs/itk/metadata.xml new file mode 100644 index 0000000..c41202e --- /dev/null +++ b/sci-libs/itk/metadata.xml @@ -0,0 +1,24 @@ + + + + + maintainer-wanted@gentoo.org + + + sci-biology@gentoo.org + Gentoo Biology Project + + + Insight Segmentation and Registration Toolkit (ITK) is a library + that provides developers with an extensive suite of tools for image + analysis. + + + Compatibility for applications using ITKv4 API + Enable compilation of methods under review + PLEASE FIX MY DESCRIPTION + + + itk + +