aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-libs/itk')
-rw-r--r--sci-libs/itk/Manifest17
-rw-r--r--sci-libs/itk/files/0001-BUG-Wrap-TransformFileReader-TransformFileWriter.patch50
-rw-r--r--sci-libs/itk/files/0002-COMP-Fixed-itkQuasiNewtonOptimizerv4-wrapping-warnin.patch28
-rw-r--r--sci-libs/itk/files/0003-COMP-Fixed-itkGradientDescentOptimizerv4-wrapping-wa.patch73
-rw-r--r--sci-libs/itk/files/0004-COMP-Warp-OptimizerParameterScalesEstimatorTemplate.patch30
-rw-r--r--sci-libs/itk/files/0005-make-gdcm-helper-library-static.patch11
-rw-r--r--sci-libs/itk/files/itk-5.2.1-fix-castxml-clang-attr-malloc.patch25
-rw-r--r--sci-libs/itk/files/itk-5.2.1-system-openjpeg.patch558
-rw-r--r--sci-libs/itk/files/itk-5.2.1-system-tiff-has-64.patch18
-rw-r--r--sci-libs/itk/files/itk-5.2.1-upstream-fixes.patch309
-rw-r--r--sci-libs/itk/files/itk-5.3.0-system-openjpeg.patch550
-rw-r--r--sci-libs/itk/files/itk-5.3.0-uint8.patch10
-rw-r--r--sci-libs/itk/files/nrrdio-linking.patch15
-rw-r--r--sci-libs/itk/itk-4.12.0.ebuild136
-rw-r--r--sci-libs/itk/itk-4.4.2-r1.ebuild135
-rw-r--r--sci-libs/itk/itk-4.4.2.ebuild115
-rw-r--r--sci-libs/itk/itk-4.5.1.ebuild155
-rw-r--r--sci-libs/itk/itk-5.2.1-r2.ebuild250
-rw-r--r--sci-libs/itk/itk-5.3.0-r1.ebuild269
-rw-r--r--sci-libs/itk/metadata.xml13
20 files changed, 2008 insertions, 759 deletions
diff --git a/sci-libs/itk/Manifest b/sci-libs/itk/Manifest
index cae86acd2..87328da27 100644
--- a/sci-libs/itk/Manifest
+++ b/sci-libs/itk/Manifest
@@ -1,5 +1,12 @@
-DIST DoxygenInsightToolkit-4.4.0.tar.gz 779393284 SHA256 a2e9a74dad840f6af7e3f3a518f43d75cad511d6b6b4b09d61f5b1b1b72d25c3 SHA512 9bdd6cedcdf5c30afb7f73130074983a56c397db776b927aae78b15a80d1158cca4563f92795d804ade34f4860b350cbbd157ed6924d53cb2ddfccf478e403c6 WHIRLPOOL 114f6ebb4052a8845559a9fa7f2883aa7bba90ff07dd7cd64d4e305e5ffdb35969b8b18b31b631e99d293fe06d95389359b23697544797a7703d9a973bd23246
-DIST DoxygenInsightToolkit-4.5.0.tar.gz 871324021 SHA256 bcc66662aa836cbb287a184870ba0aaf1b94e47d16d8e5d8bd2d30d77172781e SHA512 0bdf870c1600d847a635eefb8109dc12030387124de70c5c2b03f6a61bab796ce39c56792fcaa5779f741fce9c4d9bc621dcd70b389a805301e14c01422202a1 WHIRLPOOL 6315d22958bbfd7435d9948f1da6f3c1695abf441fc80b6c3545ad48cff42c4c0e871c091251c40cc7a2db422123304d4feaf08527c67236b34ced11c569487d
-DIST InsightToolkit-4.12.0.tar.xz 12246508 BLAKE2B c14cf0b4b1fab8a6f27f1e863ff79228473dd1d9c7fe76bca3791d8c3fad39a4f448ee81cee9ca52a974df166db7b22cd6896353482bf8c587c272266501ea5a SHA512 b0ed1a9e02d238783edf68706ae9bdd23d2cf3e90274caa0f09faafab2d55729663a45f4ef4f5884f07a2160c5dcfb179ec445718b83e235007a0002a7e19e96
-DIST InsightToolkit-4.4.2.tar.gz 231905134 BLAKE2B 910c08916b3c22f0245aed39378c8f73191d57294032c9fafae1dbe168644312921512e9520c96ba7ed409c20631f9d6a9d71241162cbb868cba4638614b7a04 SHA512 c65beca4dd60aa769871bb3089cbb421729a2dcbd8bd3ec42c378ed60828e4327f1faf062f77bcca34306315a1daee6bc29d858dab9aea1c08f4843405fd21e3
-DIST InsightToolkit-4.5.1.tar.xz 212785824 BLAKE2B 1586da2a7d4ff2c65d70459b7f6ddd9dcd04facb2c50fee6b11b6ab78eb2b4bf26b1f4bcbf7c622d7dce098348b9e510bf6f3974a047a7ad9ba3ee58abf44e11 SHA512 a613d37236e3fad68bf83c023141cef72ebfd901ebe371157f474446e0b98fc291f8c5b82b7cb60f01868b78621b919d3602b3768272173e2fe3be96f0813dbb
+DIST ITKAdaptiveDenoising-5.2.1.tar.gz 757851 BLAKE2B 3d94e1db6d2524adf7491e6e24308618b7b69e54184cbfe29a7084b55b8a337228a308233e0f0ab2cef04df9c8f42010a758e0071efdfd4905c28ca6399bfdfd SHA512 7e9c5a6681cd9777b33f11d1a1a5f6d8b1b6f7d2ec2d4d829398c78045b53b247bddea99e4a5450ba8d6666a31b5216ef6e07a2c874c5723af072e0d3c8cf9f4
+DIST ITKAdaptiveDenoising-5.3.0.tar.gz 757851 BLAKE2B 3d94e1db6d2524adf7491e6e24308618b7b69e54184cbfe29a7084b55b8a337228a308233e0f0ab2cef04df9c8f42010a758e0071efdfd4905c28ca6399bfdfd SHA512 7e9c5a6681cd9777b33f11d1a1a5f6d8b1b6f7d2ec2d4d829398c78045b53b247bddea99e4a5450ba8d6666a31b5216ef6e07a2c874c5723af072e0d3c8cf9f4
+DIST ITKGenericLabelInterpolator-1.2.0.tar.gz 137697 BLAKE2B f7bb877654e852f56f8eb1086f988ec3b71106b6528d5cf03734a3c3eb4ce5ac875b52081e0a1339ac237e1616b0516b8cc8efb4429ec0e5ef64ac5461a40836 SHA512 bc1fcd3c13cb182420bb4a5d2c9c789553f8b7b581fd7d0b7d687331e22c90d30efdd338bfbc22dfb8c97d3ab7209f761425c4d12755655d86d81ffb231d881c
+DIST ITKGenericLabelInterpolator-5.2.1.tar.gz 140427 BLAKE2B b19703872926516d9d07acd4078d343e02f00a162d2cb8b6787d6210223be375a059e767cf9c32dd234e77ff51d1af5e08d9a9844c34e23a531938c7d3ded4a9 SHA512 69e53b281cd3f7c136ad9e7ded2c362e0d9e22dc2bd595f42abcefe2cf9ec4fa0f44192efc3d328290be4adaee1ebd74be3035b18147081cc8b8479a333cdea6
+DIST InsightData-5.2.1.tar.gz 293448802 BLAKE2B fd2bb012c0d96243d3543993a87e73c43be0626b0478959e36633f22c7e8d48a46d0f4d18fa3a8d952d4a705ca20594d92c07044000b8e1bc65390ce981af3e7 SHA512 93eae6bdf62ce29ea6dfb1dddedffe4046400a86074dd4d47e3ddcd7ff9ab10031363275cb7f9741add7c02343f1f3e6a41b0ec6533531f4a3a42607c51aa704
+DIST InsightData-5.3.0.tar.gz 366826437 BLAKE2B ae3cbb3f7a51d6b86717a073c0eb55c528baeff240f44413c25ce11319a7e0ef9ff073d1cb94d2d15d104687fe5b8e95d0d4286832dbb02993da8fe706fecb28 SHA512 3caf7d1d64543312d668ef1a6b8c879161a37deee5c980fbfeb14e299a296a2825ae48463bff915f50c98ec0ccdbef3e1aff7c4f52604a93c6028951f90a4757
+DIST InsightToolkit-5.2.1.tar.gz 20702482 BLAKE2B 06dc73a80b4999baff3fc75e225c8720d00927fd268bd0398bb0eea44679777b777836f307f02a2df3641a300e17c9c2ee9f77d2a87539bf8a6ed49ce341bf23 SHA512 6786e39cdf3d0c3a31abd1e23481e30f6dc9dac189ffe372dde3db688f2f57686a8beb321778327e1ff683ed844d41f1dee937b0ba542b2365e2195dfca398c7
+DIST InsightToolkit-5.3.0.tar.gz 21577835 BLAKE2B 7538b673cbe17ab23d6b70e2cb2486e6711df6a79d6806c641a10a8b624c4723ca5f562b97be814551c79c42dea772ac64ed7bc8fdf2d28f5a95cb6462e50638 SHA512 29359839c0fb13acd430410e6adadbecb4d9d8cb4871a0aba0ac67b539c235354a591655dd654f43daa5f035a33721671d665eee8a4a129a9d0d3419e2356e97
+DIST itk-5.2.1-testingdata.tar.gz 2411475710 BLAKE2B edb8ba9bea8bf890749aa46ab3fb29f7d3e25e0f8bb7da7d7cca8c6524f75778b823232536602ade763c025b8e0fe134a555e6fcf652b8d42cc08f08cbd0c29b SHA512 89b160dc5f7781e148aad065f539b80b9accb9ec384e424398287e62b42a88cff610afcf41622a6d3e4e12c1938e7403b3dae65fa13bfb40c29a6b2f90a02398
+DIST itk-5.3.0-testingdata.tar.gz 2569680868 BLAKE2B a358bdb3a9f6de883e9fe41129af88d7a476acc4839fd17075d484a441db40d7f1f2f247d07701817464de5c997b18066628921652630a5f110e238d3f2419ec SHA512 5fa0834c25d128c915b5bdaefb13574952e680fe52a5c99ced614737e52f57abce59510be764766ce43769ae5731c35c7d646cdf3e21f495aee14fbb7d1835b4
+DIST itk-test-a5e11ea71164ff78c65fcf259db01ea5db981a9d868e60045ff2bffca92984df1174bf984a1076e450f0d5d69b4f0191ed1a61465c220e2c91a893b5df150c0a 214819 BLAKE2B cd65212e72cb80eff54ee3f22d05b55036470684c582334fe94826a2d4ed49c840c50a214996f64f2bcd710e5973c2d46201ef31732fe847a43504379df62e25 SHA512 a5e11ea71164ff78c65fcf259db01ea5db981a9d868e60045ff2bffca92984df1174bf984a1076e450f0d5d69b4f0191ed1a61465c220e2c91a893b5df150c0a
+DIST itk-test-bcdbb347f3704262d1f00be7179d6a0a6e68aed56c0653e8072ee5a94985c713bd229c935b1226a658af84fb7f1fffc2458c98364fc35303a2303b12f9f7ce2f 215417 BLAKE2B 318a6c55ba259a5af1e3e19cf859267caa0a612b05abfd9a83d9943902fd7edc25ec002707ed4ec85f7aebd4c5a82411942b5cfe2dc713c905a5bb5d1aa5ef23 SHA512 bcdbb347f3704262d1f00be7179d6a0a6e68aed56c0653e8072ee5a94985c713bd229c935b1226a658af84fb7f1fffc2458c98364fc35303a2303b12f9f7ce2f
diff --git a/sci-libs/itk/files/0001-BUG-Wrap-TransformFileReader-TransformFileWriter.patch b/sci-libs/itk/files/0001-BUG-Wrap-TransformFileReader-TransformFileWriter.patch
deleted file mode 100644
index 094ee3229..000000000
--- a/sci-libs/itk/files/0001-BUG-Wrap-TransformFileReader-TransformFileWriter.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From d069b7b94287dae15fcaf707775f5dd2bbebcc38 Mon Sep 17 00:00:00 2001
-From: Matt McCormick <matt.mccormick@kitware.com>
-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 <sami.koho@gmail.com>
-
-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
deleted file mode 100644
index 4c74d5451..000000000
--- a/sci-libs/itk/files/0002-COMP-Fixed-itkQuasiNewtonOptimizerv4-wrapping-warnin.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 66d2955fbe5528d9df216c639277d1d2686447e5 Mon Sep 17 00:00:00 2001
-From: Michka Popoff <michkapopoff@gmail.com>
-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
deleted file mode 100644
index d77345edf..000000000
--- a/sci-libs/itk/files/0003-COMP-Fixed-itkGradientDescentOptimizerv4-wrapping-wa.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From fced46ce8769b4edc7971ea0928045390b5c3f84 Mon Sep 17 00:00:00 2001
-From: Michka Popoff <michkapopoff@gmail.com>
-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
deleted file mode 100644
index 83b395626..000000000
--- a/sci-libs/itk/files/0004-COMP-Warp-OptimizerParameterScalesEstimatorTemplate.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Author: Matt McCormick <matt.mccormick@kitware.com>
-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
deleted file mode 100644
index d760ac7ba..000000000
--- a/sci-libs/itk/files/0005-make-gdcm-helper-library-static.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-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/itk-5.2.1-fix-castxml-clang-attr-malloc.patch b/sci-libs/itk/files/itk-5.2.1-fix-castxml-clang-attr-malloc.patch
new file mode 100644
index 000000000..05c9d5635
--- /dev/null
+++ b/sci-libs/itk/files/itk-5.2.1-fix-castxml-clang-attr-malloc.patch
@@ -0,0 +1,25 @@
+From: François-Xavier Carton <fx.carton91@gmail.com>
+Date: Thu, 9 Jun 2022 14:56:22 +0200
+Subject: [PATCH] fix attr malloc error with recent glibc/gcc
+
+Recent GCC has support for __attribute__((__malloc__)) with arguments, but clang
+does not. castxml uses clang internally. And recent glibc/gcc uses the attribute
+with arguments. Mix all this, and you get:
+
+error: '__malloc__' attribute takes no arguments
+
+when compiling itk with python wrapping.
+
+To fix this, we add a define to castxml flags to remove the extra arguments.
+
+--- a/Wrapping/Generators/CastXML/CMakeLists.txt 2022-06-09 14:53:15.582352715 +0200
++++ b/Wrapping/Generators/CastXML/CMakeLists.txt 2022-06-09 14:54:38.182351433 +0200
+@@ -237,7 +237,7 @@
+ set(_castxml_cc ${_castxml_cc} "-D_HAS_TR1=0")
+ endif()
+ else()
+- set(_castxml_cc --castxml-cc-gnu ( "${CMAKE_CXX_COMPILER}" ${_castxml_cc_flags} ))
++ set(_castxml_cc --castxml-cc-gnu ( "${CMAKE_CXX_COMPILER}" ${_castxml_cc_flags} -D__malloc__\(a,b\)=__malloc__ ))
+ endif()
+ set(_target)
+ if(CMAKE_CROSSCOMPILING)
diff --git a/sci-libs/itk/files/itk-5.2.1-system-openjpeg.patch b/sci-libs/itk/files/itk-5.2.1-system-openjpeg.patch
new file mode 100644
index 000000000..ad717f677
--- /dev/null
+++ b/sci-libs/itk/files/itk-5.2.1-system-openjpeg.patch
@@ -0,0 +1,558 @@
+--- a/Modules/ThirdParty/OpenJPEG/CMakeLists.txt
++++ b/Modules/ThirdParty/OpenJPEG/CMakeLists.txt
+@@ -1,16 +1,32 @@
+ project(ITKOpenJPEG)
+ set(ITKOpenJPEG_THIRD_PARTY 1)
+
+-set(ITKOpenJPEG_INCLUDE_DIRS
+- ${ITKOpenJPEG_BINARY_DIR}/src/openjpeg
+- ${ITKOpenJPEG_SOURCE_DIR}/src/openjpeg
+- )
+-set(ITKOpenJPEG_LIBRARIES itkopenjpeg)
++option(ITK_USE_SYSTEM_OPENJPEG "Use system-installed openjpeg" ${ITK_USE_SYSTEM_LIBRARIES})
++mark_as_advanced(ITK_USE_SYSTEM_OPENJPEG)
++
++if(ITK_USE_SYSTEM_OPENJPEG)
++ find_package(OpenJPEG REQUIRED)
++ set(ITKOpenJPEG_INCLUDE_DIRS
++ ${ITKOpenJPEG_BINARY_DIR}/src
++ )
++ set(ITKOpenJPEG_SYSTEM_INCLUDE_DIRS
++ ${OPENJPEG_INCLUDE_DIRS}
++ )
++ set(ITKOpenJPEG_LIBRARIES "${OPENJPEG_LIBRARIES}")
++ set(ITKOpenJPEG_NO_SRC 1)
++else()
++ set(ITKOpenJPEG_INCLUDE_DIRS
++ ${ITKOpenJPEG_BINARY_DIR}/src/openjpeg
++ ${ITKOpenJPEG_SOURCE_DIR}/src/openjpeg
++ )
++ set(ITKOpenJPEG_LIBRARIES itkopenjpeg)
++endif()
++
++configure_file(src/itk_openjpeg.h.in src/itk_openjpeg.h)
+ set(ITK_LIBRARY_PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS FALSE)
+-
+ itk_module_impl()
+
+-install(FILES ${ITKOpenJPEG_SOURCE_DIR}/src/itk_openjpeg.h
++install(FILES ${ITKOpenJPEG_BINARY_DIR}/src/itk_openjpeg.h
+ DESTINATION ${ITKOpenJPEG_INSTALL_INCLUDE_DIR}
+ COMPONENT Development
+ )
+diff --git a/Modules/ThirdParty/OpenJPEG/src/itk_openjpeg.h b/Modules/ThirdParty/OpenJPEG/src/itk_openjpeg.h.in
+rename from Modules/ThirdParty/OpenJPEG/src/itk_openjpeg.h
+rename to Modules/ThirdParty/OpenJPEG/src/itk_openjpeg.h.in
+--- a/Modules/ThirdParty/OpenJPEG/src/itk_openjpeg.h
++++ b/Modules/ThirdParty/OpenJPEG/src/itk_openjpeg.h.in
+@@ -25,6 +25,12 @@
+ #ifndef itk_openjpeg_h
+ #define itk_openjpeg_h
+
+-#include <itkopenjpeg/openjpeg.h>
++/* Use the openjpeg library configured for ITK. */
++#cmakedefine ITK_USE_SYSTEM_OPENJPEG
++#ifdef ITK_USE_SYSTEM_OPENJPEG
++# include <openjpeg.h>
++#else
++# include <itkopenjpeg/openjpeg.h>
++#endif
+
+ #endif
+--- a/Modules/IO/JPEG2000/src/itkJPEG2000ImageIO.cxx
++++ b/Modules/IO/JPEG2000/src/itkJPEG2000ImageIO.cxx
+@@ -27,8 +27,6 @@
+ extern "C"
+ {
+ #include "openjpeg.h"
+-#include "j2k.h"
+-#include "jp2.h"
+ }
+
+
+@@ -139,11 +137,11 @@
+ {
+ itkDebugMacro(<< "ReadImageInformation()");
+
+- FILE * l_file = fopen(this->m_FileName.c_str(), "rb");
+-
+- /* decompression parameters */
++ /* set decoding parameters to default values */
++ opj_set_default_decoder_parameters(&(this->m_Internal->m_DecompressionParameters));
+
+- if (!l_file)
++ opj_stream_t * cio = opj_stream_create_default_file_stream(this->m_FileName.c_str(), true);
++ if (!cio)
+ {
+ itkExceptionMacro("JPEG2000ImageIO failed to open file for reading: " << this->GetFileName() << std::endl
+ << "Reason: "
+@@ -151,10 +149,5 @@
+ }
+
+- /* set decoding parameters to default values */
+- opj_set_default_decoder_parameters(&(this->m_Internal->m_DecompressionParameters));
+-
+- opj_stream_t * cio = opj_stream_create_default_file_stream(l_file, true);
+-
+ this->m_Internal->m_Dinfo = nullptr; /* handle to a decompressor */
+
+ opj_image_t * l_image = nullptr;
+@@ -188,9 +181,8 @@
+
+ /* get a decoder handle */
+- this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_J2K);
++ this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_J2K);
+ if (!this->m_Internal->m_Dinfo)
+ {
+ opj_stream_destroy(cio);
+- fclose(l_file);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: "
+ << this->GetFileName() << std::endl
+@@ -202,10 +194,9 @@
+ {
+ /* JPEG 2000 compressed image data */
+ /* get a decoder handle */
+- this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_JP2);
++ this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_JP2);
+ if (!this->m_Internal->m_Dinfo)
+ {
+ opj_stream_destroy(cio);
+- fclose(l_file);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: "
+ << this->GetFileName() << std::endl
+@@ -217,10 +208,9 @@
+ {
+ /* JPEG 2000, JPIP */
+ /* get a decoder handle */
+- this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_JPT);
++ this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_JPT);
+ if (!this->m_Internal->m_Dinfo)
+ {
+ opj_stream_destroy(cio);
+- fclose(l_file);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: "
+ << this->GetFileName() << std::endl
+@@ -230,7 +220,6 @@
+ }
+ default:
+ opj_stream_destroy(cio);
+- fclose(l_file);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: "
+ << this->GetFileName() << std::endl
+ << "Reason: "
+@@ -248,26 +237,8 @@
+ }
+
+- // Image parameters - first tile
+- OPJ_INT32 l_tile_x0;
+- OPJ_INT32 l_tile_y0;
+-
+- // Image parameters - tile width, height and number of tiles
+- OPJ_UINT32 l_tile_width;
+- OPJ_UINT32 l_tile_height;
+- OPJ_UINT32 l_nb_tiles_x;
+- OPJ_UINT32 l_nb_tiles_y;
+-
+ itkDebugMacro(<< "Trying to read header now...");
+
+- bResult = opj_read_header(this->m_Internal->m_Dinfo,
+- &l_image,
+- &l_tile_x0,
+- &l_tile_y0,
+- &l_tile_width,
+- &l_tile_height,
+- &l_nb_tiles_x,
+- &l_nb_tiles_y,
+- cio);
++ bResult = opj_read_header(cio, this->m_Internal->m_Dinfo, &l_image);
+
+ if (!bResult)
+ {
+@@ -284,13 +255,21 @@
+ }
+
+- this->m_Internal->m_TileStartX = l_tile_x0;
+- this->m_Internal->m_TileStartY = l_tile_y0;
++ opj_codestream_info_v2_t* cp = opj_get_cstr_info(this->m_Internal->m_Dinfo);
++ if (!cp)
++ {
++ opj_stream_destroy(cio);
++ opj_image_destroy(l_image);
++ itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
++ << "Reason: Error while reading image header");
++ }
++ this->m_Internal->m_TileStartX = cp->tx0;
++ this->m_Internal->m_TileStartY = cp->ty0;
+
+- this->m_Internal->m_TileWidth = l_tile_width;
+- this->m_Internal->m_TileHeight = l_tile_height;
++ this->m_Internal->m_TileWidth = cp->tdx;
++ this->m_Internal->m_TileHeight = cp->tdy;
+
+- this->m_Internal->m_NumberOfTilesInX = l_nb_tiles_x;
+- this->m_Internal->m_NumberOfTilesInY = l_nb_tiles_y;
++ this->m_Internal->m_NumberOfTilesInX = cp->tw;
++ this->m_Internal->m_NumberOfTilesInY = cp->th;
+
+
+ itkDebugMacro(<< "Number of Components = " << l_image->numcomps);
+@@ -307,6 +286,7 @@
+ else
+ {
+ opj_stream_destroy(cio);
++ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
+ << "Reason: "
+ << "Unknown precision in file: "
+@@ -320,6 +300,6 @@
+ break;
+ case 3:
+- if (l_image->color_space != CLRSPC_SRGB)
++ if (l_image->color_space != OPJ_CLRSPC_SRGB)
+ {
+ itkWarningMacro(<< "file does not specify color space, assuming sRGB");
+ }
+@@ -349,7 +329,6 @@
+
+ /* close the byte stream */
+ opj_stream_destroy(cio);
+- fclose(l_file);
+
+ if (this->m_Internal->m_Dinfo)
+ {
+@@ -368,16 +347,7 @@
+ {
+ itkDebugMacro(<< "JPEG2000ImageIO::Read() Begin");
+
+- FILE * l_file = fopen(this->m_FileName.c_str(), "rb");
+-
+- if (!l_file)
+- {
+- itkExceptionMacro("JPEG2000ImageIO failed to open file for reading: " << this->GetFileName() << std::endl
+- << "Reason: "
+- << itksys::SystemTools::GetLastSystemError());
+- }
+-
+- opj_stream_t * l_stream = opj_stream_create_default_file_stream(l_file, true);
++ opj_stream_t * l_stream = opj_stream_create_default_file_stream(this->m_FileName.c_str(), true);
+ if (!l_stream)
+ {
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: "
+@@ -397,9 +367,10 @@
+ {
+ /* JPEG-2000 codestream */
+ /* get a decoder handle */
+- this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_J2K);
++ this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_J2K);
+ if (!this->m_Internal->m_Dinfo)
+ {
++ opj_stream_destroy(l_stream);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: "
+ << this->GetFileName() << std::endl
+ << "Reason: opj_create_decompress(CODEC_J2K) returns nullptr");
+@@ -410,9 +381,10 @@
+ {
+ /* JPEG 2000 compressed image data */
+ /* get a decoder handle */
+- this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_JP2);
++ this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_JP2);
+ if (!this->m_Internal->m_Dinfo)
+ {
++ opj_stream_destroy(l_stream);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: "
+ << this->GetFileName() << std::endl
+ << "Reason: opj_create_decompress(CODEC_JP2) returns nullptr");
+@@ -423,9 +395,10 @@
+ {
+ /* JPEG 2000, JPIP */
+ /* get a decoder handle */
+- this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_JPT);
++ this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_JPT);
+ if (!this->m_Internal->m_Dinfo)
+ {
++ opj_stream_destroy(l_stream);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: "
+ << this->GetFileName() << std::endl
+ << "Reason: opj_create_decompress(CODEC_JPT) returns nullptr");
+@@ -433,7 +406,7 @@
+ break;
+ }
+ default:
+- fclose(l_file);
++ opj_stream_destroy(l_stream);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: "
+ << this->GetFileName() << std::endl
+ << "Reason: "
+@@ -445,32 +418,17 @@
+ if (!opj_setup_decoder(this->m_Internal->m_Dinfo, &(this->m_Internal->m_DecompressionParameters)))
+ {
++ opj_stream_destroy(l_stream);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
+ << "Reason: opj_setup_decoder returns false");
+ }
+
+- OPJ_INT32 l_tile_x0, l_tile_y0;
+-
+- OPJ_UINT32 l_tile_width;
+- OPJ_UINT32 l_tile_height;
+- OPJ_UINT32 l_nb_tiles_x;
+- OPJ_UINT32 l_nb_tiles_y;
+-
+- bool bResult = opj_read_header(this->m_Internal->m_Dinfo,
+- &l_image,
+- &l_tile_x0,
+- &l_tile_y0,
+- &l_tile_width,
+- &l_tile_height,
+- &l_nb_tiles_x,
+- &l_nb_tiles_y,
+- l_stream);
++ bool bResult = opj_read_header(l_stream, this->m_Internal->m_Dinfo, &l_image);
+
+ if (!bResult)
+ {
+ opj_destroy_codec(this->m_Internal->m_Dinfo);
+ this->m_Internal->m_Dinfo = nullptr;
+ opj_stream_destroy(l_stream);
+- fclose(l_file);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
+ << "Reason: opj_read_header returns false");
+ }
+@@ -499,7 +457,7 @@
+ itkDebugMacro(<< "p_end_x = " << p_end_x);
+ itkDebugMacro(<< "p_end_y = " << p_end_y);
+
+- bResult = opj_set_decode_area(this->m_Internal->m_Dinfo, p_start_x, p_start_y, p_end_x, p_end_y);
++ bResult = opj_set_decode_area(this->m_Internal->m_Dinfo, l_image, p_start_x, p_start_y, p_end_x, p_end_y);
+
+ itkDebugMacro(<< "opj_set_decode_area() after");
+
+@@ -509,6 +467,5 @@
+ this->m_Internal->m_Dinfo = nullptr;
+ opj_stream_destroy(l_stream);
+- fclose(l_file);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
+ << "Reason: opj_set_decode_area returns false");
+ }
+@@ -525,13 +482,14 @@
+
+ OPJ_UINT32 l_max_data_size = 1000;
+
+- bool l_go_on = true;
++ OPJ_BOOL l_go_on = true;
+
+ auto * l_data = (OPJ_BYTE *)malloc(1000);
+
+ while (l_go_on)
+ {
+ bool tileHeaderRead = opj_read_tile_header(this->m_Internal->m_Dinfo,
++ l_stream,
+ &l_tile_index,
+ &l_data_size,
+ &l_current_tile_x0,
+@@ -540,13 +498,11 @@
+ &l_current_tile_y1,
+ &l_nb_comps,
+- &l_go_on,
+- l_stream);
++ &l_go_on);
+
+ if (!tileHeaderRead)
+ {
+ free(l_data);
+ opj_stream_destroy(l_stream);
+- fclose(l_file);
+ opj_destroy_codec(this->m_Internal->m_Dinfo);
+ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
+@@ -571,7 +527,6 @@
+ if (!l_data)
+ {
+ opj_stream_destroy(l_stream);
+- fclose(l_file);
+ opj_destroy_codec(this->m_Internal->m_Dinfo);
+ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
+@@ -590,7 +545,6 @@
+ {
+ free(l_data);
+ opj_stream_destroy(l_stream);
+- fclose(l_file);
+ opj_destroy_codec(this->m_Internal->m_Dinfo);
+ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
+@@ -654,7 +608,6 @@
+ {
+ free(l_data);
+ opj_stream_destroy(l_stream);
+- fclose(l_file);
+ opj_destroy_codec(this->m_Internal->m_Dinfo);
+ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
+@@ -667,13 +620,11 @@
+ this->m_Internal->m_Dinfo = nullptr;
+ opj_stream_destroy(l_stream);
+- fclose(l_file);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
+ << "Reason: error whle reading image");
+ }
+
+ /* close the byte stream */
+ opj_stream_destroy(l_stream);
+- fclose(l_file);
+
+ if (this->m_Internal->m_Dinfo)
+ {
+@@ -775,6 +726,6 @@
+ }
+
+- for (int i = 0; i < parameters.numpocs; i++)
++ for (OPJ_UINT32 i = 0; i < parameters.numpocs; i++)
+ {
+ if (parameters.POC[i].prg == -1)
+ {
+@@ -840,13 +791,13 @@
+
+ parameters.numresolution = numberOfResolutions;
+
+- OPJ_COLOR_SPACE color_space = CLRSPC_GRAY;
++ OPJ_COLOR_SPACE color_space = OPJ_CLRSPC_GRAY;
+ opj_image_cmptparm_t cmptparms[3];
+
+ if (this->GetNumberOfComponents() == 3)
+ {
+
+- color_space = (this->GetPixelType() == IOPixelEnum::RGB) ? CLRSPC_SRGB : CLRSPC_UNSPECIFIED;
++ color_space = (this->GetPixelType() == IOPixelEnum::RGB) ? OPJ_CLRSPC_SRGB : OPJ_CLRSPC_UNSPECIFIED;
+
+ /* initialize image components */
+ memset(&cmptparms[0], 0, 3 * sizeof(opj_image_cmptparm_t));
+@@ -864,7 +815,7 @@
+
+ if (this->GetNumberOfComponents() == 1)
+ {
+- color_space = CLRSPC_GRAY;
++ color_space = OPJ_CLRSPC_GRAY;
+
+ /* initialize image components */
+ memset(&cmptparms[0], 0, sizeof(opj_image_cmptparm_t));
+@@ -941,8 +892,9 @@
+ if (extension == ".j2k")
+ {
+- cinfo = opj_create_compress(CODEC_J2K);
++ cinfo = opj_create_compress(OPJ_CODEC_J2K);
+ if (!cinfo)
+ {
++ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to write file: "
+ << this->GetFileName() << std::endl
+ << "Reason: opj_create_compress(CODEC_J2K) returns nullptr");
+@@ -950,9 +902,10 @@
+ }
+ else if (extension == ".jp2")
+ {
+- cinfo = opj_create_compress(CODEC_JP2);
++ cinfo = opj_create_compress(OPJ_CODEC_JP2);
+ if (!cinfo)
+ {
++ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to write file: "
+ << this->GetFileName() << std::endl
+ << "Reason: opj_create_compress(CODEC_JP2) returns nullptr");
+@@ -960,9 +913,10 @@
+ }
+ else if (extension == ".jpt")
+ {
+- cinfo = opj_create_compress(CODEC_JPT);
++ cinfo = opj_create_compress(OPJ_CODEC_JPT);
+ if (!cinfo)
+ {
++ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to write file: "
+ << this->GetFileName() << std::endl
+ << "Reason: opj_create_compress(CODEC_JPT) returns nullptr");
+@@ -970,6 +924,7 @@
+ }
+ else
+ {
++ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl
+ << "Reason: unknown encode format: " << extension);
+ }
+@@ -985,23 +940,19 @@
+
+ if (!opj_setup_encoder(cinfo, &parameters, l_image))
+ {
++ opj_destroy_codec(cinfo);
++ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl
+ << "Reason: opj_setup_encoder returns false");
+ }
+
+- FILE * l_file = fopen(parameters.outfile, "wb");
+- if (!l_file)
+- {
+- itkExceptionMacro("JPEG2000ImageIO failed to open file for writing: " << this->GetFileName() << std::endl
+- << "Reason: "
+- << itksys::SystemTools::GetLastSystemError());
+- }
+-
+ /* open a byte stream for writing */
+ /* allocate memory for all tiles */
+- opj_stream_t * cio = opj_stream_create_default_file_stream(l_file, false);
++ opj_stream_t * cio = opj_stream_create_default_file_stream(parameters.outfile, false);
+ if (!cio)
+ {
++ opj_destroy_codec(cinfo);
++ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to write file: "
+ << this->GetFileName() << std::endl
+ << "Reason: "
+@@ -1017,7 +968,8 @@
+ if (!bSuccess)
+ {
+ opj_stream_destroy(cio);
+- fclose(l_file);
++ opj_destroy_codec(cinfo);
++ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl
+ << "Reason: opj_start_compress returns false");
+ }
+@@ -1026,7 +978,8 @@
+ if (!bSuccess)
+ {
+ opj_stream_destroy(cio);
+- fclose(l_file);
++ opj_destroy_codec(cinfo);
++ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl
+ << "Reason: opj_encode returns false");
+ }
+@@ -1035,14 +988,14 @@
+ if (!bSuccess)
+ {
+ opj_stream_destroy(cio);
+- fclose(l_file);
++ opj_destroy_codec(cinfo);
++ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl
+ << "Reason: opj_end_compress returns false");
+ }
+
+ /* close and free the byte stream */
+ opj_stream_destroy(cio);
+- fclose(l_file);
+
+ /* free remaining compression structures */
+ opj_destroy_codec(cinfo);
+--- a/Modules/Nonunit/Review/src/CMakeLists.txt
++++ b/Modules/Nonunit/Review/src/CMakeLists.txt
+@@ -5,7 +5,7 @@
+
+ add_library(ITKReview ${ITKReview_SRC})
+ itk_module_link_dependencies()
+-target_link_libraries(ITKReview LINK_PUBLIC ${ITKTestKernel_LIBRARIES} ${ITKIOLSM_LIBRARIES} itkopenjpeg)
++target_link_libraries(ITKReview LINK_PUBLIC ${ITKTestKernel_LIBRARIES} ${ITKIOLSM_LIBRARIES} ${ITKOpenJPEG_LIBRARIES})
+ itk_module_target(ITKReview)
+
+
diff --git a/sci-libs/itk/files/itk-5.2.1-system-tiff-has-64.patch b/sci-libs/itk/files/itk-5.2.1-system-tiff-has-64.patch
new file mode 100644
index 000000000..25c44db2c
--- /dev/null
+++ b/sci-libs/itk/files/itk-5.2.1-system-tiff-has-64.patch
@@ -0,0 +1,18 @@
+From: François-Xavier Carton <fx.carton91@gmail.com>
+Date: Wed, 8 Jun 2022 19:36:48 +0200
+Subject: [PATCH] system libtiff has INT64
+
+Enabling this, otherwise using system libtiff leads to errors. In particular
+tests fail because there is some IFD8 data but the itkTIFFDataSize function
+returns 0 instead of 8, resulting in invalid mem access.
+
+--- a/Modules/ThirdParty/TIFF/src/itk_tiff.h.in.orig 2022-06-08 19:34:04.412431969 +0200
++++ b/Modules/ThirdParty/TIFF/src/itk_tiff.h.in 2022-06-08 19:34:26.240431631 +0200
+@@ -34,6 +34,7 @@
+ #cmakedefine ITK_TIFF_HAS_TIFFFieldReadCount
+ #cmakedefine ITK_TIFF_HAS_TIFFField
+ #ifdef ITK_USE_SYSTEM_TIFF
++# define TIFF_INT64_T int64_t
+ # include <tiffio.h>
+ #else
+ # include "itktiff/tiffio.h"
diff --git a/sci-libs/itk/files/itk-5.2.1-upstream-fixes.patch b/sci-libs/itk/files/itk-5.2.1-upstream-fixes.patch
new file mode 100644
index 000000000..2af8c4998
--- /dev/null
+++ b/sci-libs/itk/files/itk-5.2.1-upstream-fixes.patch
@@ -0,0 +1,309 @@
+https://github.com/InsightSoftwareConsortium/ITK/commit/2a7f5ed199926999b67f61a97c2c9a2595a11558.patch
+https://github.com/InsightSoftwareConsortium/ITK/commit/0c31aa688e82a34e5430873bc6176740fd09ad75.patch
+https://github.com/InsightSoftwareConsortium/ITK/commit/28325d921a9b8793e6aaefd612f53989f951d19c.patch
+https://github.com/InsightSoftwareConsortium/ITK/commit/aafd1f9631d0fad60e1b6f53e049e95a50c48bd1.patch
+
+From 2a7f5ed199926999b67f61a97c2c9a2595a11558 Mon Sep 17 00:00:00 2001
+From: Niels Dekker <N.Dekker@lumc.nl>
+Date: Thu, 24 Jun 2021 18:00:01 +0200
+Subject: [PATCH] COMP: Add missing `#include <iostream>` to Deprecated module
+ test
+
+Fixed a Visual C++ 2019 error, saying:
+
+> Deprecated\test\itkSimpleFastMutexLockTest.cxx(48,12): error C2039: 'cout': is not a member of 'std'
+---
+ .../Deprecated/test/itkSimpleFastMutexLockTest.cxx | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/Modules/Compatibility/Deprecated/test/itkSimpleFastMutexLockTest.cxx b/Modules/Compatibility/Deprecated/test/itkSimpleFastMutexLockTest.cxx
+index 11ad0c52700..60aa1c065b4 100644
+--- a/Modules/Compatibility/Deprecated/test/itkSimpleFastMutexLockTest.cxx
++++ b/Modules/Compatibility/Deprecated/test/itkSimpleFastMutexLockTest.cxx
+@@ -19,6 +19,8 @@
+
+ #include "itkSimpleFastMutexLock.h"
+
++#include <iostream> // For cout.
++
+
+ int
+ itkSimpleFastMutexLockTest(int, char *[])
+From 0c31aa688e82a34e5430873bc6176740fd09ad75 Mon Sep 17 00:00:00 2001
+From: Pablo Hernandez-Cerdan <pablo.hernandez.cerdan@outlook.com>
+Date: Tue, 20 Apr 2021 17:21:21 +0200
+Subject: [PATCH] COMP: CastXML, ITKVtkGlue, include only when property exists
+
+Some targets (VTK libraries) didn't have the property INTERFACE_INCLUDE_DIRECTORIES
+
+```bash
+CMake Error in Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:
+ Found relative path while evaluating include directories of
+ "ITKVtkGluePython":
+
+ "_vtk_lib_include_dirs-NOTFOUND"
+```
+
+Triggered when compiling Slicer with `Slicer_BUILD_ITKPython:BOOL=ON`
+aka `ITK_WRAP_PYTHON:BOOL=ON`.
+
+Full error log with extra printing:
+
+```bash
+
+CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:3 (message):
+ ITKVtkGlue_VTK_LIBRARIES:
+ VTK::IOImage;VTK::ImagingSources;VTK::WrappingPythonCore;VTK::CommonCore;VTK::CommonDataModel;VTK::kwiml;VTK::CommonExecutionModel;VTK::RenderingOpenGL2;VTK::RenderingFreeType;VTK::InteractionStyle;VTK::InteractionWidgets
+
+CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
+ _vtk_lib_include_dirs: _vtk_lib_include_dirs-NOTFOUND
+
+CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
+ _vtk_lib_include_dirs: _vtk_lib_include_dirs-NOTFOUND
+
+CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
+ _vtk_lib_include_dirs:
+ build/VTK-build/Wrapping/PythonCore;build/VTK/Wrapping/PythonCore
+
+CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
+ _vtk_lib_include_dirs: _vtk_lib_include_dirs-NOTFOUND
+
+CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
+ _vtk_lib_include_dirs: _vtk_lib_include_dirs-NOTFOUND
+
+CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
+ _vtk_lib_include_dirs:
+ build/VTK-build/Utilities/KWIML;build/VTK/Utilities/KWIML
+
+CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
+ _vtk_lib_include_dirs: _vtk_lib_include_dirs-NOTFOUND
+
+CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
+ _vtk_lib_include_dirs: _vtk_lib_include_dirs-NOTFOUND
+
+CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
+ _vtk_lib_include_dirs: _vtk_lib_include_dirs-NOTFOUND
+
+CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
+ _vtk_lib_include_dirs: _vtk_lib_include_dirs-NOTFOUND
+
+CMake Warning at Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:6 (message):
+ _vtk_lib_include_dirs: _vtk_lib_include_dirs-NOTFOUND
+
+-- ITKVtkGlue: Creating module.
+-- ITKVtkGlue: Creating itkImageToVTKImageFilter submodule.
+-- ITKVtkGlue: Creating itkVTKImageToImageFilter submodule.
+-- ITKVtkGlue: Creating itkViewImage submodule.
+-- MGHIO: Creating module.
+-- MGHIO: Creating itkMGHImageIO submodule.
+-- MorphologicalContourInterpolation: Creating module.
+-- MorphologicalContourInterpolation: Creating itkMorphologicalContourInterpolator submodule.
+-- ITKPyUtils: Creating module.
+-- ITKPyUtils: Creating itkPyCommand submodule.
+-- ITKPyUtils: Creating itkPyImageFilter submodule.
+-- Configuring done
+CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
+Please set them or make sure they are set and tested correctly in the CMake files:
+_vtk_lib_include_dirs
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+ used as include directory in directory build/ITK/Modules/Bridge/VtkGlue/wrapping
+
+CMake Error in Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt:
+ Found relative path while evaluating include directories of
+ "ITKVtkGluePython":
+
+ "_vtk_lib_include_dirs-NOTFOUND"
+
+```
+---
+ Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt b/Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt
+index 3f3322957e1..2fd6a5af8f6 100644
+--- a/Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt
++++ b/Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt
+@@ -2,7 +2,9 @@
+ if(NOT VTK_RENDERING_BACKEND STREQUAL "None")
+ foreach(_vtk_lib IN LISTS ITKVtkGlue_VTK_LIBRARIES)
+ get_target_property(_vtk_lib_include_dirs ${_vtk_lib} INTERFACE_INCLUDE_DIRECTORIES)
+- include_directories(${_vtk_lib_include_dirs})
++ if(_vtk_lib_include_dirs)
++ include_directories(${_vtk_lib_include_dirs})
++ endif()
+ endforeach()
+ endif()
+
+From 28325d921a9b8793e6aaefd612f53989f951d19c Mon Sep 17 00:00:00 2001
+From: Butui Hu <hot123tea123@gmail.com>
+Date: Mon, 1 Aug 2022 14:26:39 +0800
+Subject: [PATCH] COMP: use sysconfig.get_path as PEP 632 deprecate distutils
+ module
+
+---
+ Wrapping/Generators/Python/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Wrapping/Generators/Python/CMakeLists.txt b/Wrapping/Generators/Python/CMakeLists.txt
+index fca3d999b87..3b7a1d37334 100644
+--- a/Wrapping/Generators/Python/CMakeLists.txt
++++ b/Wrapping/Generators/Python/CMakeLists.txt
+@@ -36,7 +36,7 @@ file(MAKE_DIRECTORY ${WRAPPER_MASTER_INDEX_OUTPUT_DIR}/python)
+ ###############################################################################
+ # Configure Python wrapping installation
+ if(Python3_EXECUTABLE AND NOT PY_SITE_PACKAGES_PATH)
+- set(python_check "try:\n import distutils.sysconfig\n print(distutils.sysconfig.get_python_lib(plat_specific=1, prefix=''))\nexcept:\n pass")
++ set(python_check "try:\n import sysconfig\n print(sysconfig.get_path('platlib'))\nexcept:\n pass")
+ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/detect_site_package_path.py ${python_check})
+ execute_process(COMMAND "${Python3_EXECUTABLE}" "${CMAKE_CURRENT_BINARY_DIR}/detect_site_package_path.py"
+ OUTPUT_VARIABLE py_spp
+From aafd1f9631d0fad60e1b6f53e049e95a50c48bd1 Mon Sep 17 00:00:00 2001
+From: Hans Johnson <hans-johnson@uiowa.edu>
+Date: Wed, 15 Dec 2021 08:10:58 -0600
+Subject: [PATCH] COMP: Remove inclusion of .hxx files as headers
+
+The ability to include either .h or .hxx files as
+header files required recursively reading the
+.h files twice. The added complexity is
+unnecessary, costly, and can confuse static
+analysis tools that monitor header guardes (due
+to reaching the maximum depth of recursion
+limits for nested #ifdefs in checking).
+
+Co-authored-by: Simon Rit <simon.rit@creatis.insa-lyon.fr>
+---
+ CMake/ITKModuleHeaderTest.cmake | 3 +--
+ Utilities/Maintenance/BuildHeaderTest.py | 4 ----
+ 2 files changed, 1 insertion(+), 6 deletions(-)
+
+diff --git a/CMake/ITKModuleHeaderTest.cmake b/CMake/ITKModuleHeaderTest.cmake
+index eb809d7e93d..82ad192a6f8 100644
+--- a/CMake/ITKModuleHeaderTest.cmake
++++ b/CMake/ITKModuleHeaderTest.cmake
+@@ -36,8 +36,7 @@ macro( itk_module_headertest _name )
+ # effected.
+ set( _include ${${_name}_SOURCE_DIR}/include )
+ file( GLOB _h_files ${_include}/*.h )
+- file( GLOB _hxx_files ${_include}/*.hxx )
+- set( _header_files ${_h_files} ${_hxx_files} )
++ set( _header_files ${_h_files} )
+ list( LENGTH _h_files _num_headers )
+ set( _outputs ${${_name}_BINARY_DIR}/test/${_name}HeaderTest1.cxx )
+ set( _test_num 1 )
+diff --git a/Utilities/Maintenance/BuildHeaderTest.py b/Utilities/Maintenance/BuildHeaderTest.py
+index 26a4b6ccb3f..f8ed9f7901e 100755
+--- a/Utilities/Maintenance/BuildHeaderTest.py
++++ b/Utilities/Maintenance/BuildHeaderTest.py
+@@ -130,15 +130,11 @@ def main():
+ else:
+ max_idx = added_header_idx + maximum_number_of_headers
+ for i in range(added_header_idx, max_idx):
+- # Use the .hxx if possible.
+- hxx_file = h_files[i][:-1] + "hxx"
+ # Files that include VTK headers need to link to VTK.
+ if h_files[i] in BANNED_HEADERS or h_files[i].lower().find("vtk") != -1:
+ to_include = (
+ '// #include "' + h_files[i] + '" // Banned in BuildHeaderTest.py\n'
+ )
+- elif os.path.exists(os.path.join(module_source_path, "include", hxx_file)):
+- to_include = '#include "' + hxx_file + '"\n'
+ else:
+ to_include = '#include "' + h_files[i] + '"\n'
+
diff --git a/sci-libs/itk/files/itk-5.3.0-system-openjpeg.patch b/sci-libs/itk/files/itk-5.3.0-system-openjpeg.patch
new file mode 100644
index 000000000..27f139553
--- /dev/null
+++ b/sci-libs/itk/files/itk-5.3.0-system-openjpeg.patch
@@ -0,0 +1,550 @@
+--- a/Modules/ThirdParty/OpenJPEG/CMakeLists.txt
++++ b/Modules/ThirdParty/OpenJPEG/CMakeLists.txt
+@@ -1,16 +1,32 @@
+ project(ITKOpenJPEG)
+ set(ITKOpenJPEG_THIRD_PARTY 1)
+
+-set(ITKOpenJPEG_INCLUDE_DIRS
+- ${ITKOpenJPEG_BINARY_DIR}/src/openjpeg
+- ${ITKOpenJPEG_SOURCE_DIR}/src/openjpeg
+- )
+-set(ITKOpenJPEG_LIBRARIES itkopenjpeg)
++option(ITK_USE_SYSTEM_OPENJPEG "Use system-installed openjpeg" ${ITK_USE_SYSTEM_LIBRARIES})
++mark_as_advanced(ITK_USE_SYSTEM_OPENJPEG)
++
++if(ITK_USE_SYSTEM_OPENJPEG)
++ find_package(OpenJPEG REQUIRED)
++ set(ITKOpenJPEG_INCLUDE_DIRS
++ ${ITKOpenJPEG_BINARY_DIR}/src
++ )
++ set(ITKOpenJPEG_SYSTEM_INCLUDE_DIRS
++ ${OPENJPEG_INCLUDE_DIRS}
++ )
++ set(ITKOpenJPEG_LIBRARIES "${OPENJPEG_LIBRARIES}")
++ set(ITKOpenJPEG_NO_SRC 1)
++else()
++ set(ITKOpenJPEG_INCLUDE_DIRS
++ ${ITKOpenJPEG_BINARY_DIR}/src/openjpeg
++ ${ITKOpenJPEG_SOURCE_DIR}/src/openjpeg
++ )
++ set(ITKOpenJPEG_LIBRARIES itkopenjpeg)
++endif()
++
++configure_file(src/itk_openjpeg.h.in src/itk_openjpeg.h)
+ set(ITK_LIBRARY_PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS FALSE)
+-
+ itk_module_impl()
+
+-install(FILES ${ITKOpenJPEG_SOURCE_DIR}/src/itk_openjpeg.h
++install(FILES ${ITKOpenJPEG_BINARY_DIR}/src/itk_openjpeg.h
+ DESTINATION ${ITKOpenJPEG_INSTALL_INCLUDE_DIR}
+ COMPONENT Development
+ )
+diff --git a/Modules/ThirdParty/OpenJPEG/src/itk_openjpeg.h b/Modules/ThirdParty/OpenJPEG/src/itk_openjpeg.h.in
+rename from Modules/ThirdParty/OpenJPEG/src/itk_openjpeg.h
+rename to Modules/ThirdParty/OpenJPEG/src/itk_openjpeg.h.in
+--- a/Modules/ThirdParty/OpenJPEG/src/itk_openjpeg.h
++++ b/Modules/ThirdParty/OpenJPEG/src/itk_openjpeg.h.in
+@@ -25,6 +25,12 @@
+ #ifndef itk_openjpeg_h
+ #define itk_openjpeg_h
+
+-#include <itkopenjpeg/openjpeg.h>
++/* Use the openjpeg library configured for ITK. */
++#cmakedefine ITK_USE_SYSTEM_OPENJPEG
++#ifdef ITK_USE_SYSTEM_OPENJPEG
++# include <openjpeg.h>
++#else
++# include <itkopenjpeg/openjpeg.h>
++#endif
+
+ #endif
+--- a/Modules/IO/JPEG2000/src/itkJPEG2000ImageIO.cxx
++++ b/Modules/IO/JPEG2000/src/itkJPEG2000ImageIO.cxx
+@@ -27,8 +27,6 @@
+ extern "C"
+ {
+ #include "openjpeg.h"
+-#include "j2k.h"
+-#include "jp2.h"
+ }
+
+
+@@ -139,11 +137,11 @@
+ {
+ itkDebugMacro(<< "ReadImageInformation()");
+
+- FILE * l_file = fopen(this->m_FileName.c_str(), "rb");
+-
+- /* decompression parameters */
++ /* set decoding parameters to default values */
++ opj_set_default_decoder_parameters(&(this->m_Internal->m_DecompressionParameters));
+
+- if (!l_file)
++ opj_stream_t * cio = opj_stream_create_default_file_stream(this->m_FileName.c_str(), true);
++ if (!cio)
+ {
+ itkExceptionMacro("JPEG2000ImageIO failed to open file for reading: " << this->GetFileName() << std::endl
+ << "Reason: "
+@@ -151,10 +149,5 @@
+ }
+
+- /* set decoding parameters to default values */
+- opj_set_default_decoder_parameters(&(this->m_Internal->m_DecompressionParameters));
+-
+- opj_stream_t * cio = opj_stream_create_default_file_stream(l_file, true);
+-
+ this->m_Internal->m_Dinfo = nullptr; /* handle to a decompressor */
+
+ opj_image_t * l_image = nullptr;
+@@ -188,9 +181,8 @@
+
+ /* get a decoder handle */
+- this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_J2K);
++ this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_J2K);
+ if (!this->m_Internal->m_Dinfo)
+ {
+ opj_stream_destroy(cio);
+- fclose(l_file);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: "
+ << this->GetFileName() << std::endl
+@@ -202,10 +194,9 @@
+ {
+ /* JPEG 2000 compressed image data */
+ /* get a decoder handle */
+- this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_JP2);
++ this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_JP2);
+ if (!this->m_Internal->m_Dinfo)
+ {
+ opj_stream_destroy(cio);
+- fclose(l_file);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: "
+ << this->GetFileName() << std::endl
+@@ -217,10 +208,9 @@
+ {
+ /* JPEG 2000, JPIP */
+ /* get a decoder handle */
+- this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_JPT);
++ this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_JPT);
+ if (!this->m_Internal->m_Dinfo)
+ {
+ opj_stream_destroy(cio);
+- fclose(l_file);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: "
+ << this->GetFileName() << std::endl
+@@ -230,7 +220,6 @@
+ }
+ default:
+ opj_stream_destroy(cio);
+- fclose(l_file);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: "
+ << this->GetFileName() << std::endl
+ << "Reason: "
+@@ -248,26 +237,8 @@
+ }
+
+- // Image parameters - first tile
+- OPJ_INT32 l_tile_x0;
+- OPJ_INT32 l_tile_y0;
+-
+- // Image parameters - tile width, height and number of tiles
+- OPJ_UINT32 l_tile_width;
+- OPJ_UINT32 l_tile_height;
+- OPJ_UINT32 l_nb_tiles_x;
+- OPJ_UINT32 l_nb_tiles_y;
+-
+ itkDebugMacro(<< "Trying to read header now...");
+
+- bResult = opj_read_header(this->m_Internal->m_Dinfo,
+- &l_image,
+- &l_tile_x0,
+- &l_tile_y0,
+- &l_tile_width,
+- &l_tile_height,
+- &l_nb_tiles_x,
+- &l_nb_tiles_y,
+- cio);
++ bResult = opj_read_header(cio, this->m_Internal->m_Dinfo, &l_image);
+
+ if (!bResult)
+ {
+@@ -284,13 +255,21 @@
+ }
+
+- this->m_Internal->m_TileStartX = l_tile_x0;
+- this->m_Internal->m_TileStartY = l_tile_y0;
++ opj_codestream_info_v2_t* cp = opj_get_cstr_info(this->m_Internal->m_Dinfo);
++ if (!cp)
++ {
++ opj_stream_destroy(cio);
++ opj_image_destroy(l_image);
++ itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
++ << "Reason: Error while reading image header");
++ }
++ this->m_Internal->m_TileStartX = cp->tx0;
++ this->m_Internal->m_TileStartY = cp->ty0;
+
+- this->m_Internal->m_TileWidth = l_tile_width;
+- this->m_Internal->m_TileHeight = l_tile_height;
++ this->m_Internal->m_TileWidth = cp->tdx;
++ this->m_Internal->m_TileHeight = cp->tdy;
+
+- this->m_Internal->m_NumberOfTilesInX = l_nb_tiles_x;
+- this->m_Internal->m_NumberOfTilesInY = l_nb_tiles_y;
++ this->m_Internal->m_NumberOfTilesInX = cp->tw;
++ this->m_Internal->m_NumberOfTilesInY = cp->th;
+
+
+ itkDebugMacro(<< "Number of Components = " << l_image->numcomps);
+@@ -307,6 +286,7 @@
+ else
+ {
+ opj_stream_destroy(cio);
++ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
+ << "Reason: "
+ << "Unknown precision in file: "
+@@ -320,6 +300,6 @@
+ break;
+ case 3:
+- if (l_image->color_space != CLRSPC_SRGB)
++ if (l_image->color_space != OPJ_CLRSPC_SRGB)
+ {
+ itkWarningMacro(<< "file does not specify color space, assuming sRGB");
+ }
+@@ -349,7 +329,6 @@
+
+ /* close the byte stream */
+ opj_stream_destroy(cio);
+- fclose(l_file);
+
+ if (this->m_Internal->m_Dinfo)
+ {
+@@ -368,16 +347,7 @@
+ {
+ itkDebugMacro(<< "JPEG2000ImageIO::Read() Begin");
+
+- FILE * l_file = fopen(this->m_FileName.c_str(), "rb");
+-
+- if (!l_file)
+- {
+- itkExceptionMacro("JPEG2000ImageIO failed to open file for reading: " << this->GetFileName() << std::endl
+- << "Reason: "
+- << itksys::SystemTools::GetLastSystemError());
+- }
+-
+- opj_stream_t * l_stream = opj_stream_create_default_file_stream(l_file, true);
++ opj_stream_t * l_stream = opj_stream_create_default_file_stream(this->m_FileName.c_str(), true);
+ if (!l_stream)
+ {
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: "
+@@ -397,9 +367,10 @@
+ {
+ /* JPEG-2000 codestream */
+ /* get a decoder handle */
+- this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_J2K);
++ this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_J2K);
+ if (!this->m_Internal->m_Dinfo)
+ {
++ opj_stream_destroy(l_stream);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: "
+ << this->GetFileName() << std::endl
+ << "Reason: opj_create_decompress(CODEC_J2K) returns nullptr");
+@@ -410,9 +381,10 @@
+ {
+ /* JPEG 2000 compressed image data */
+ /* get a decoder handle */
+- this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_JP2);
++ this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_JP2);
+ if (!this->m_Internal->m_Dinfo)
+ {
++ opj_stream_destroy(l_stream);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: "
+ << this->GetFileName() << std::endl
+ << "Reason: opj_create_decompress(CODEC_JP2) returns nullptr");
+@@ -423,9 +395,10 @@
+ {
+ /* JPEG 2000, JPIP */
+ /* get a decoder handle */
+- this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_JPT);
++ this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_JPT);
+ if (!this->m_Internal->m_Dinfo)
+ {
++ opj_stream_destroy(l_stream);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: "
+ << this->GetFileName() << std::endl
+ << "Reason: opj_create_decompress(CODEC_JPT) returns nullptr");
+@@ -433,7 +406,7 @@
+ break;
+ }
+ default:
+- fclose(l_file);
++ opj_stream_destroy(l_stream);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: "
+ << this->GetFileName() << std::endl
+ << "Reason: "
+@@ -445,32 +418,17 @@
+ if (!opj_setup_decoder(this->m_Internal->m_Dinfo, &(this->m_Internal->m_DecompressionParameters)))
+ {
++ opj_stream_destroy(l_stream);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
+ << "Reason: opj_setup_decoder returns false");
+ }
+
+- OPJ_INT32 l_tile_x0, l_tile_y0;
+-
+- OPJ_UINT32 l_tile_width;
+- OPJ_UINT32 l_tile_height;
+- OPJ_UINT32 l_nb_tiles_x;
+- OPJ_UINT32 l_nb_tiles_y;
+-
+- bool bResult = opj_read_header(this->m_Internal->m_Dinfo,
+- &l_image,
+- &l_tile_x0,
+- &l_tile_y0,
+- &l_tile_width,
+- &l_tile_height,
+- &l_nb_tiles_x,
+- &l_nb_tiles_y,
+- l_stream);
++ bool bResult = opj_read_header(l_stream, this->m_Internal->m_Dinfo, &l_image);
+
+ if (!bResult)
+ {
+ opj_destroy_codec(this->m_Internal->m_Dinfo);
+ this->m_Internal->m_Dinfo = nullptr;
+ opj_stream_destroy(l_stream);
+- fclose(l_file);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
+ << "Reason: opj_read_header returns false");
+ }
+@@ -499,7 +457,7 @@
+ itkDebugMacro(<< "p_end_x = " << p_end_x);
+ itkDebugMacro(<< "p_end_y = " << p_end_y);
+
+- bResult = opj_set_decode_area(this->m_Internal->m_Dinfo, p_start_x, p_start_y, p_end_x, p_end_y);
++ bResult = opj_set_decode_area(this->m_Internal->m_Dinfo, l_image, p_start_x, p_start_y, p_end_x, p_end_y);
+
+ itkDebugMacro(<< "opj_set_decode_area() after");
+
+@@ -509,6 +467,5 @@
+ this->m_Internal->m_Dinfo = nullptr;
+ opj_stream_destroy(l_stream);
+- fclose(l_file);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
+ << "Reason: opj_set_decode_area returns false");
+ }
+@@ -525,13 +482,14 @@
+
+ OPJ_UINT32 l_max_data_size = 1000;
+
+- bool l_go_on = true;
++ OPJ_BOOL l_go_on = true;
+
+ auto * l_data = (OPJ_BYTE *)malloc(1000);
+
+ while (l_go_on)
+ {
+ bool tileHeaderRead = opj_read_tile_header(this->m_Internal->m_Dinfo,
++ l_stream,
+ &l_tile_index,
+ &l_data_size,
+ &l_current_tile_x0,
+@@ -540,13 +498,11 @@
+ &l_current_tile_y1,
+ &l_nb_comps,
+- &l_go_on,
+- l_stream);
++ &l_go_on);
+
+ if (!tileHeaderRead)
+ {
+ free(l_data);
+ opj_stream_destroy(l_stream);
+- fclose(l_file);
+ opj_destroy_codec(this->m_Internal->m_Dinfo);
+ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
+@@ -571,7 +527,6 @@
+ if (!l_data)
+ {
+ opj_stream_destroy(l_stream);
+- fclose(l_file);
+ opj_destroy_codec(this->m_Internal->m_Dinfo);
+ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
+@@ -590,7 +545,6 @@
+ {
+ free(l_data);
+ opj_stream_destroy(l_stream);
+- fclose(l_file);
+ opj_destroy_codec(this->m_Internal->m_Dinfo);
+ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
+@@ -654,7 +608,6 @@
+ {
+ free(l_data);
+ opj_stream_destroy(l_stream);
+- fclose(l_file);
+ opj_destroy_codec(this->m_Internal->m_Dinfo);
+ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
+@@ -667,13 +620,11 @@
+ this->m_Internal->m_Dinfo = nullptr;
+ opj_stream_destroy(l_stream);
+- fclose(l_file);
+ itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
+ << "Reason: error whle reading image");
+ }
+
+ /* close the byte stream */
+ opj_stream_destroy(l_stream);
+- fclose(l_file);
+
+ if (this->m_Internal->m_Dinfo)
+ {
+@@ -840,13 +791,13 @@
+
+ parameters.numresolution = numberOfResolutions;
+
+- OPJ_COLOR_SPACE color_space = CLRSPC_GRAY;
++ OPJ_COLOR_SPACE color_space = OPJ_CLRSPC_GRAY;
+ opj_image_cmptparm_t cmptparms[3];
+
+ if (this->GetNumberOfComponents() == 3)
+ {
+
+- color_space = (this->GetPixelType() == IOPixelEnum::RGB) ? CLRSPC_SRGB : CLRSPC_UNSPECIFIED;
++ color_space = (this->GetPixelType() == IOPixelEnum::RGB) ? OPJ_CLRSPC_SRGB : OPJ_CLRSPC_UNSPECIFIED;
+
+ /* initialize image components */
+ memset(&cmptparms[0], 0, 3 * sizeof(opj_image_cmptparm_t));
+@@ -864,7 +815,7 @@
+
+ if (this->GetNumberOfComponents() == 1)
+ {
+- color_space = CLRSPC_GRAY;
++ color_space = OPJ_CLRSPC_GRAY;
+
+ /* initialize image components */
+ memset(&cmptparms[0], 0, sizeof(opj_image_cmptparm_t));
+@@ -941,8 +892,9 @@
+ if (extension == ".j2k")
+ {
+- cinfo = opj_create_compress(CODEC_J2K);
++ cinfo = opj_create_compress(OPJ_CODEC_J2K);
+ if (!cinfo)
+ {
++ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to write file: "
+ << this->GetFileName() << std::endl
+ << "Reason: opj_create_compress(CODEC_J2K) returns nullptr");
+@@ -950,9 +902,10 @@
+ }
+ else if (extension == ".jp2")
+ {
+- cinfo = opj_create_compress(CODEC_JP2);
++ cinfo = opj_create_compress(OPJ_CODEC_JP2);
+ if (!cinfo)
+ {
++ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to write file: "
+ << this->GetFileName() << std::endl
+ << "Reason: opj_create_compress(CODEC_JP2) returns nullptr");
+@@ -960,9 +913,10 @@
+ }
+ else if (extension == ".jpt")
+ {
+- cinfo = opj_create_compress(CODEC_JPT);
++ cinfo = opj_create_compress(OPJ_CODEC_JPT);
+ if (!cinfo)
+ {
++ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to write file: "
+ << this->GetFileName() << std::endl
+ << "Reason: opj_create_compress(CODEC_JPT) returns nullptr");
+@@ -970,6 +924,7 @@
+ }
+ else
+ {
++ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl
+ << "Reason: unknown encode format: " << extension);
+ }
+@@ -985,23 +940,19 @@
+
+ if (!opj_setup_encoder(cinfo, &parameters, l_image))
+ {
++ opj_destroy_codec(cinfo);
++ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl
+ << "Reason: opj_setup_encoder returns false");
+ }
+
+- FILE * l_file = fopen(parameters.outfile, "wb");
+- if (!l_file)
+- {
+- itkExceptionMacro("JPEG2000ImageIO failed to open file for writing: " << this->GetFileName() << std::endl
+- << "Reason: "
+- << itksys::SystemTools::GetLastSystemError());
+- }
+-
+ /* open a byte stream for writing */
+ /* allocate memory for all tiles */
+- opj_stream_t * cio = opj_stream_create_default_file_stream(l_file, false);
++ opj_stream_t * cio = opj_stream_create_default_file_stream(parameters.outfile, false);
+ if (!cio)
+ {
++ opj_destroy_codec(cinfo);
++ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to write file: "
+ << this->GetFileName() << std::endl
+ << "Reason: "
+@@ -1017,7 +968,8 @@
+ if (!bSuccess)
+ {
+ opj_stream_destroy(cio);
+- fclose(l_file);
++ opj_destroy_codec(cinfo);
++ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl
+ << "Reason: opj_start_compress returns false");
+ }
+@@ -1026,7 +978,8 @@
+ if (!bSuccess)
+ {
+ opj_stream_destroy(cio);
+- fclose(l_file);
++ opj_destroy_codec(cinfo);
++ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl
+ << "Reason: opj_encode returns false");
+ }
+@@ -1035,14 +988,14 @@
+ if (!bSuccess)
+ {
+ opj_stream_destroy(cio);
+- fclose(l_file);
++ opj_destroy_codec(cinfo);
++ opj_image_destroy(l_image);
+ itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl
+ << "Reason: opj_end_compress returns false");
+ }
+
+ /* close and free the byte stream */
+ opj_stream_destroy(cio);
+- fclose(l_file);
+
+ /* free remaining compression structures */
+ opj_destroy_codec(cinfo);
+--- a/Modules/Nonunit/Review/src/CMakeLists.txt
++++ b/Modules/Nonunit/Review/src/CMakeLists.txt
+@@ -5,7 +5,7 @@
+
+ add_library(ITKReview ${ITKReview_SRC})
+ itk_module_link_dependencies()
+-target_link_libraries(ITKReview LINK_PUBLIC ${ITKTestKernel_LIBRARIES} ${ITKIOLSM_LIBRARIES} itkopenjpeg)
++target_link_libraries(ITKReview LINK_PUBLIC ${ITKTestKernel_LIBRARIES} ${ITKIOLSM_LIBRARIES} ${ITKOpenJPEG_LIBRARIES})
+ itk_module_target(ITKReview)
+
+
diff --git a/sci-libs/itk/files/itk-5.3.0-uint8.patch b/sci-libs/itk/files/itk-5.3.0-uint8.patch
new file mode 100644
index 000000000..724314574
--- /dev/null
+++ b/sci-libs/itk/files/itk-5.3.0-uint8.patch
@@ -0,0 +1,10 @@
+--- a/Modules/Filtering/MathematicalMorphology/include/itkMathematicalMorphologyEnums.h
++++ b/Modules/Filtering/MathematicalMorphology/include/itkMathematicalMorphologyEnums.h
+@@ -20,6 +20,7 @@
+
+ #include <iostream>
+ #include "ITKMathematicalMorphologyExport.h"
++#include <cstdint>
+
+
+ namespace itk
diff --git a/sci-libs/itk/files/nrrdio-linking.patch b/sci-libs/itk/files/nrrdio-linking.patch
deleted file mode 100644
index a549650d2..000000000
--- a/sci-libs/itk/files/nrrdio-linking.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Description: Link libITKNrrdIO with -lm (needed for sqrt)
-Author: Steve Robbins <smr@debian.org>
-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/itk-4.12.0.ebuild b/sci-libs/itk/itk-4.12.0.ebuild
deleted file mode 100644
index a9633748b..000000000
--- a/sci-libs/itk/itk-4.12.0.ebuild
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-
-inherit eutils toolchain-funcs cmake-utils python-single-r1
-
-MYPN=InsightToolkit
-MYP=${MYPN}-${PV}
-DOC_PV=4.5.0
-
-DESCRIPTION="NLM Insight Segmentation and Registration Toolkit"
-HOMEPAGE="http://www.itk.org"
-SRC_URI="mirror://sourceforge/${PN}/${MYP}.tar.xz
- doc? ( mirror://sourceforge/${PN}/Doxygen${MYPN}-${DOC_PV}.tar.gz )"
-RESTRICT="primaryuri"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="debug doc examples +fftw itkv3compat python review cpu_flags_x86_sse2 test vtkglue"
-
-RDEPEND="
- dev-libs/double-conversion:0=
- media-libs/libpng:0=
- media-libs/tiff:0=
- 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=[python?] )
-"
-DEPEND="${RDEPEND}
- python? (
- ${PYTHON_DEPS}
- >=dev-lang/swig-2.0:0
- >=dev-cpp/gccxml-0.9.0_pre20120309
- )
- doc? ( app-doc/doxygen )
-"
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-S="${WORKDIR}/${MYP}"
-
-PATCHES=(
- "${FILESDIR}/nrrdio-linking.patch"
-)
-
-get_memory() {
- free --giga | grep Mem | cut -d ' ' -f 15 || die 'unable to get memory size'
-}
-
-src_configure() {
- sed -i \
- -e '/find_package/d' \
- Modules/ThirdParty/DoubleConversion/CMakeLists.txt || die
-
- local mycmakeargs=(
- -DBUILD_SHARED_LIBS=ON
- -DITK_USE_SYSTEM_DCMTK=ON
- -DITK_USE_SYSTEM_DOUBLECONVERSION=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_BUILD_DEFAULT_MODULES=ON
- -DITK_COMPUTER_MEMORY_SIZE="$(get_memory)"
- -DITK_WRAP_JAVA=OFF
- -DITK_WRAP_TCL=OFF
- -DBUILD_TESTING=$(usex test)
- -DBUILD_EXAMPLES=$(usex examples)
- -DITK_USE_REVIEW=$(usex review)
- -DITKV3_COMPATIBILITY=$(usex itkv3compat)
- -DVNL_CONFIG_ENABLE_SSE2=$(usex cpu_flags_x86_sse2)
- )
- if use fftw; then
- mycmakeargs+=(
- -DUSE_FFTWD=ON
- -DUSE_FFTWF=ON
- -DUSE_SYSTEM_FFTW=ON
- -DITK_USE_SYSTEM_FFTW=ON
- -DITK_WRAPPING=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
- mycmakeargs+=(
- -DITK_WRAP_PYTHON=$(usex python ON OFF)
- )
-
- cmake-utils_src_configure
-}
-
-src_install() {
- cmake-utils_src_install
-
- if use examples; then
- insinto /usr/share/doc/${PF}/examples
- docompress -x /usr/share/doc/${PF}/examples
- doins -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
- insinto /usr/share/doc/${PF}/api-docs
- cd "${WORKDIR}"/html
- rm *.md5 || die "Failed to remove superfluous hashes"
- einfo "Installing API docs. This may take some time."
- insinto /usr/share/doc/${PF}/api-docs
- doins -r *
- fi
-
- mv "${D}/usr/lib" "${D}/usr/$(get_libdir)" || \
- die 'unable to fix libdir'
-}
diff --git a/sci-libs/itk/itk-4.4.2-r1.ebuild b/sci-libs/itk/itk-4.4.2-r1.ebuild
deleted file mode 100644
index 93a03a5f8..000000000
--- a/sci-libs/itk/itk-4.4.2-r1.ebuild
+++ /dev/null
@@ -1,135 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 )
-
-inherit eutils toolchain-funcs cmake-utils python-single-r1
-
-MYPN=InsightToolkit
-MYP=${MYPN}-${PV}
-
-DESCRIPTION="NLM Insight Segmentation and Registration Toolkit"
-HOMEPAGE="http://www.itk.org"
-SRC_URI="
- mirror://sourceforge/${PN}/${MYP}.tar.gz
- doc? ( mirror://sourceforge/${PN}/Doxygen${MYPN}-4.4.0.tar.gz )"
-RESTRICT="primaryuri"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="debug doc examples fftw itkv3compat python review cpu_flags_x86_sse2 test vtkglue"
-
-RDEPEND="
- sci-libs/hdf5[cxx]
- virtual/jpeg:0=
- media-libs/libpng:0=
- media-libs/tiff:0=
- sys-libs/zlib
- fftw? ( sci-libs/fftw:3.0 )
- vtkglue? ( sci-libs/vtk )
-"
-DEPEND="${RDEPEND}
- python? (
- ${PYTHON_DEPS}
- >=dev-lang/swig-2.0:0
- >=dev-cpp/gccxml-0.9.0_pre20120309
- )
- doc? ( app-doc/doxygen )
-"
-
-S="${WORKDIR}/${MYP}"
-
-pkg_pretend() {
- if [[ -z ${ITK_COMPUTER_MEMORY_SIZE} ]]; then
- elog "To tune ITK to make the best use ouf 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_configure() {
- local mycmakeargs=(
- -DWRAP_ITK_JAVA=OFF
- -DWRAP_ITK_TCL=OFF
- -DITK_USE_SYSTEM_HDF5=ON
- -DITK_USE_SYSTEM_JPEG=ON
- -DITK_USE_SYSTEM_PNG=ON
- -DITK_USE_SYSTEM_TIFF=ON
- -DITK_USE_SYSTEM_ZLIB=ON
- -DITK_USE_SYSTEM_GCCXML=ON
- -DITK_USE_SYSTEM_SWIG=ON
- -DITK_BUILD_ALL_MODULES=ON
- -DBUILD_SHARED_LIBS=ON
- -DBUILD_EXAMPLES=OFF
- -DITK_COMPUTER_MEMORY_SIZE="${ITK_COMPUTER_MEMORY_SIZE:-1}"
- $(cmake-utils_use_build test TESTING)
- $(cmake-utils_use review ITK_USE_REVIEW)
- $(cmake-utils_use itkv3compat ITKV3_COMPATIBILITY)
- $(cmake-utils_use cpu_flags_x86_sse2 VNL_CONFIG_ENABLE_SSE2)
- )
- 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-utils_src_configure
-}
-
-src_install() {
- cmake-utils_src_install
-
- if use examples; then
- insinto /usr/share/doc/${PF}/examples
- docompress -x /usr/share/doc/${PF}/examples
- doins -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}
-
- if use doc; then
- insinto "/usr/share/doc/${PF}/api-docs"
- cd "${WORKDIR}"/html
- rm -f *.md5 || die "Failed to remove superfluous hashes"
- einfo "Installing API docs. This may take some time."
- insinto "/usr/share/doc/${PF}/api-docs"
- doins -r ./*
- fi
-
- doenvd "${T}"/40${PN}
-}
diff --git a/sci-libs/itk/itk-4.4.2.ebuild b/sci-libs/itk/itk-4.4.2.ebuild
deleted file mode 100644
index 2d3b9f961..000000000
--- a/sci-libs/itk/itk-4.4.2.ebuild
+++ /dev/null
@@ -1,115 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 )
-
-inherit eutils toolchain-funcs cmake-utils python-single-r1
-
-MYP=InsightToolkit-${PV}
-
-DESCRIPTION="NLM Insight Segmentation and Registration Toolkit"
-HOMEPAGE="http://www.itk.org"
-SRC_URI="mirror://sourceforge/${PN}/${MYP}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="debug examples fftw itkv3compat python review cpu_flags_x86_sse2 test"
-
-RDEPEND="
- sci-libs/hdf5[cxx]
- virtual/jpeg:0=
- media-libs/libpng:0=
- media-libs/tiff:0=
- sys-libs/zlib
- fftw? ( sci-libs/fftw:3.0 )
-"
-DEPEND="${RDEPEND}
- python? (
- ${PYTHON_DEPS}
- >=dev-lang/swig-2.0:0
- >=dev-cpp/gccxml-0.9.0_pre20120309
- )
-"
-
-S="${WORKDIR}/${MYP}"
-
-pkg_pretend() {
- if [[ -z ${ITK_COMPUTER_MEMORY_SIZE} ]]; then
- elog "To tune ITK to make the best use ouf 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_configure() {
- local mycmakeargs=(
- -DWRAP_ITK_JAVA=OFF
- -DWRAP_ITK_TCL=OFF
- -DITK_USE_SYSTEM_HDF5=ON
- -DITK_USE_SYSTEM_JPEG=ON
- -DITK_USE_SYSTEM_PNG=ON
- -DITK_USE_SYSTEM_TIFF=ON
- -DITK_USE_SYSTEM_ZLIB=ON
- -DITK_USE_SYSTEM_GCCXML=ON
- -DITK_USE_SYSTEM_SWIG=ON
- -DITK_BUILD_ALL_MODULES=ON
- -DBUILD_SHARED_LIBS=ON
- -DBUILD_EXAMPLES=OFF
- -DITK_COMPUTER_MEMORY_SIZE="${ITK_COMPUTER_MEMORY_SIZE:-1}"
- $(cmake-utils_use_build test TESTING)
- $(cmake-utils_use review ITK_USE_REVIEW)
- $(cmake-utils_use itkv3compat ITKV3_COMPATIBILITY)
- $(cmake-utils_use cpu_flags_x86_sse2 VNL_CONFIG_ENABLE_SSE2)
- )
- 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 python; then
- mycmakeargs+=(
- -DITK_WRAP_PYTHON=ON
- -DITK_WRAP_DIMS="${ITK_WRAP_DIMS:-2;3}"
- )
- else
- mycmakeargs+=(
- -DITK_WRAP_PYTHON=OFF
- )
- fi
- cmake-utils_src_configure
-}
-
-src_install() {
- cmake-utils_src_install
-
- if use examples; then
- insinto /usr/share/doc/${PF}/examples
- docompress -x /usr/share/doc/${PF}/examples
- doins -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}
-}
diff --git a/sci-libs/itk/itk-4.5.1.ebuild b/sci-libs/itk/itk-4.5.1.ebuild
deleted file mode 100644
index 199c03659..000000000
--- a/sci-libs/itk/itk-4.5.1.ebuild
+++ /dev/null
@@ -1,155 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 )
-
-inherit eutils toolchain-funcs cmake-utils python-single-r1
-
-MYPN=InsightToolkit
-MYP=${MYPN}-${PV}
-DOC_PV=4.5.0
-
-DESCRIPTION="NLM Insight Segmentation and Registration Toolkit"
-HOMEPAGE="http://www.itk.org"
-SRC_URI="mirror://sourceforge/${PN}/${MYP}.tar.xz
- doc? ( mirror://sourceforge/${PN}/Doxygen${MYPN}-${DOC_PV}.tar.gz )"
-RESTRICT="primaryuri"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="debug doc examples fftw itkv3compat python review cpu_flags_x86_sse2 test vtkglue"
-
-RDEPEND="
- dev-libs/double-conversion:0=
- media-libs/libpng:0=
- media-libs/tiff:0=
- 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=[python?] )
-"
-DEPEND="${RDEPEND}
- python? (
- ${PYTHON_DEPS}
- >=dev-lang/swig-2.0:0
- >=dev-cpp/gccxml-0.9.0_pre20120309
- )
- doc? ( app-doc/doxygen )
-"
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-S="${WORKDIR}/${MYP}"
-
-PATCHES=(
- "${FILESDIR}"/0001-BUG-Wrap-TransformFileReader-TransformFileWriter.patch
- "${FILESDIR}"/0002-COMP-Fixed-itkQuasiNewtonOptimizerv4-wrapping-warnin.patch
- "${FILESDIR}"/0003-COMP-Fixed-itkGradientDescentOptimizerv4-wrapping-wa.patch
- "${FILESDIR}"/0004-COMP-Warp-OptimizerParameterScalesEstimatorTemplate.patch
- "${FILESDIR}"/0005-make-gdcm-helper-library-static.patch
- "${FILESDIR}"/nrrdio-linking.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_configure() {
- sed -i \
- -e '/find_package/d' \
- Modules/ThirdParty/DoubleConversion/CMakeLists.txt || die
-
- local mycmakeargs=(
- -DBUILD_SHARED_LIBS=ON
- -DITK_USE_SYSTEM_DCMTK=ON
- -DITK_USE_SYSTEM_DOUBLECONVERSION=ON
- -DITK_USE_SYSTEM_GCCXML=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_BUILD_DEFAULT_MODULES=ON
- -DITK_COMPUTER_MEMORY_SIZE="${ITK_COMPUTER_MEMORY_SIZE:-1}"
- -DWRAP_ITK_JAVA=OFF
- -DWRAP_ITK_TCL=OFF
- -Ddouble-conversion_INCLUDE_DIRS="${EPREFIX}/usr/include/double-conversion"
- -Ddouble-conversion_LIBRARIES="-ldouble-conversion"
- $(cmake-utils_use_build test TESTING)
- $(cmake-utils_use_build examples EXAMPLES)
- $(cmake-utils_use review ITK_USE_REVIEW)
- $(cmake-utils_use itkv3compat ITKV3_COMPATIBILITY)
- $(cmake-utils_use cpu_flags_x86_sse2 VNL_CONFIG_ENABLE_SSE2)
- )
- 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-utils_src_configure
-}
-
-src_install() {
- cmake-utils_src_install
-
- if use examples; then
- insinto /usr/share/doc/${PF}/examples
- docompress -x /usr/share/doc/${PF}/examples
- doins -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
- insinto /usr/share/doc/${PF}/api-docs
- cd "${WORKDIR}"/html
- rm *.md5 || die "Failed to remove superfluous hashes"
- einfo "Installing API docs. This may take some time."
- insinto /usr/share/doc/${PF}/api-docs
- doins -r *
- fi
-}
diff --git a/sci-libs/itk/itk-5.2.1-r2.ebuild b/sci-libs/itk/itk-5.2.1-r2.ebuild
new file mode 100644
index 000000000..0b1f25860
--- /dev/null
+++ b/sci-libs/itk/itk-5.2.1-r2.ebuild
@@ -0,0 +1,250 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..11} )
+VIRTUALX_REQUIRED="manual"
+
+inherit cmake python-single-r1 virtualx
+
+MY_PN="InsightToolkit"
+MY_P="${MY_PN}-${PV}"
+GLI_HASH="89da9305f5750d3990ca9fd35ecc5ce0b39c71a6"
+IAD_HASH="24825c8d246e941334f47968553f0ae388851f0c"
+TEST_HASH="7ab9d41ad5b42ccbe8adcaf0b24416d439a264d0"
+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}/download -> ${PN}-test-${i} "
+done
+
+DESCRIPTION="NLM Insight Segmentation and Registration Toolkit"
+HOMEPAGE="https://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
+ https://github.com/ntustison/ITKAdaptiveDenoising/archive/${IAD_HASH}.tar.gz -> ITKAdaptiveDenoising-${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"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-cpp/eigen:3
+ dev-libs/double-conversion:0=
+ dev-libs/expat:0=
+ media-libs/openjpeg:2
+ media-libs/libpng:0=
+ media-libs/tiff:0=[jpeg]
+ sci-libs/dcmtk:0=
+ sci-libs/hdf5:0=[cxx]
+ sci-libs/gdcm:0=
+ sys-libs/zlib:0=
+ media-libs/libjpeg-turbo:0=
+ fftw? ( sci-libs/fftw:3.0= )
+ vtkglue? (
+ sci-libs/vtk:0=[rendering]
+ python? (
+ sci-libs/vtk:0=[python,${PYTHON_SINGLE_USEDEP}]
+ )
+ )
+ python? ( ${PYTHON_DEPS} )
+"
+DEPEND="${RDEPEND}
+ sys-apps/coreutils
+ python? (
+ >=dev-lang/swig-2.0:0
+ dev-libs/castxml
+ )
+ doc? ( app-text/doxygen )
+"
+BDEPEND="
+ test? (
+ vtkglue? ( ${VIRTUALX_DEPEND} )
+ python? (
+ $(python_gen_cond_dep 'dev-python/numpy[${PYTHON_USEDEP}]')
+ )
+ )
+"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-upstream-fixes.patch"
+ "${FILESDIR}/${P}-system-tiff-has-64.patch"
+ "${FILESDIR}/${P}-fix-castxml-clang-attr-malloc.patch"
+ "${FILESDIR}/${P}-system-openjpeg.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() {
+ # drop bundled libs
+ local -a DROPS=(
+ DoubleConversion/src/double-conversion
+ Eigen3/src/itkeigen
+ Expat/src/expat
+ GDCM/src/gdcm
+ JPEG/src/itkjpeg
+ HDF5/src/itkhdf5
+ OpenJPEG/src/openjpeg
+ PNG/src/itkpng
+ TIFF/src/itktiff
+ ZLIB/src/itkzlib
+ )
+ local x
+ for x in "${DROPS[@]}"; do
+ ebegin "Dropping bundled ${x%%/*}"
+ rm -r "Modules/ThirdParty/${x}" || die
+ eend $?
+ done
+ {
+ find Modules/ThirdParty -mindepth 2 -maxdepth 2 -type d -name src -printf '%P\n'
+ printf '%s\n' "${DROPS[@]}" | sed 's,/[^/]*$,,'
+ } | sort | uniq -u | xargs -n 1 ewarn "Using bundled" || die
+
+ # Remote modules
+ ln -sr "../ITKGenericLabelInterpolator-${GLI_HASH}" Modules/External/ITKGenericLabelInterpolator || die
+ ln -sr "../ITKAdaptiveDenoising-${IAD_HASH}" Modules/External/ITKAdaptiveDenoising || 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}/${PN}-test-${i}" ".ExternalData/SHA512/${i}" || die
+ cp "${DISTDIR}/${PN}-test-${i}" "${BUILD_DIR}/.ExternalData/SHA512/${i}" || die
+ done
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DITK_BUILD_DOCUMENTATION="$(usex doc ON OFF)"
+ -DITK_INSTALL_DOC_DIR="share/doc/${P}"
+ -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_EIGEN=ON
+ -DITK_USE_SYSTEM_EXPAT=ON
+ -DITK_USE_SYSTEM_GDCM=ON
+ -DITK_USE_SYSTEM_HDF5=ON
+ -DITK_USE_SYSTEM_JPEG=ON
+ -DITK_USE_SYSTEM_OPENJPEG=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_AdaptiveDenoising:BOOL=ON
+ -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
+ -DPython3_EXECUTABLE="${PYTHON}"
+ -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=${EPREFIX}/usr/share/${PN}/data" > ${T}/40${PN} || die
+ local ldpath="${EPREFIX}/usr/$(get_libdir)/InsightToolkit"
+ if use python; then
+ echo "PYTHONPATH=${EPREFIX}/usr/$(get_libdir)/InsightToolkit/WrapITK/Python" >> "${T}"/40${PN} || die
+ ldpath="${ldpath}:${EPREFIX}/usr/$(get_libdir)/InsightToolkit/WrapITK/lib"
+ fi
+ echo "LDPATH=${ldpath}" >> "${T}"/40${PN} || die
+ 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
+
+ use python && python_optimize
+}
+
+src_test() {
+ if use vtkglue; then
+ virtx cmake_src_test
+ else
+ cmake_src_test
+ fi
+}
diff --git a/sci-libs/itk/itk-5.3.0-r1.ebuild b/sci-libs/itk/itk-5.3.0-r1.ebuild
new file mode 100644
index 000000000..b2c3af801
--- /dev/null
+++ b/sci-libs/itk/itk-5.3.0-r1.ebuild
@@ -0,0 +1,269 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..11} )
+VIRTUALX_REQUIRED="manual"
+
+inherit cmake python-single-r1 virtualx
+
+MY_PN="InsightToolkit"
+MY_P="${MY_PN}-${PV}"
+GLI_V="1.2.0"
+IAD_HASH="24825c8d246e941334f47968553f0ae388851f0c"
+TEST_HASH="bb6d3b9a932333901465c75417fe8859124f5fed"
+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}/download -> ${PN}-test-${i} "
+done
+
+DESCRIPTION="NLM Insight Segmentation and Registration Toolkit"
+HOMEPAGE="https://itk.org"
+SRC_URI="
+ https://github.com/InsightSoftwareConsortium/ITK/releases/download/v${PV}/${MY_P}.tar.gz
+ https://github.com/InsightSoftwareConsortium/ITKGenericLabelInterpolator/archive/refs/tags/v${GLI_V}.tar.gz -> ITKGenericLabelInterpolator-${GLI_V}.tar.gz
+ https://github.com/ntustison/ITKAdaptiveDenoising/archive/${IAD_HASH}.tar.gz -> ITKAdaptiveDenoising-${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"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-cpp/eigen:3
+ dev-libs/double-conversion:0=
+ dev-libs/expat:0=
+ dev-libs/icu:0=
+ media-libs/libjpeg-turbo:0=
+ media-libs/libpng:0=
+ media-libs/openjpeg:2
+ media-libs/tiff:0=[jpeg]
+ sci-libs/dcmtk:0=
+ sci-libs/gdcm:0=
+ sci-libs/hdf5:0=[cxx]
+ sys-libs/zlib-ng
+ fftw? ( sci-libs/fftw:3.0=[threads] )
+ vtkglue? (
+ sci-libs/vtk:0=[rendering]
+ python? (
+ sci-libs/vtk:0=[python,${PYTHON_SINGLE_USEDEP}]
+ )
+ )
+ python? ( ${PYTHON_DEPS} )
+"
+# Might also need:
+# dev-libs/kwsys::guru
+# kwiml
+# minc
+# metaio
+# niftilib
+# sci-lib/vxl::science
+DEPEND="${RDEPEND}
+ sys-apps/coreutils
+ python? (
+ >=dev-lang/swig-2.0:0
+ dev-libs/castxml
+ )
+ doc? ( app-text/doxygen )
+"
+BDEPEND="
+ test? (
+ vtkglue? ( ${VIRTUALX_DEPEND} )
+ python? (
+ $(python_gen_cond_dep 'dev-python/numpy[${PYTHON_USEDEP}]')
+ )
+ )
+"
+
+S="${WORKDIR}/${MY_P}"
+
+# uint patch applied by upstream for next release.
+PATCHES=(
+ "${FILESDIR}/${PN}-5.2.1-system-tiff-has-64.patch"
+ "${FILESDIR}/${PN}-5.3.0-system-openjpeg.patch"
+ "${FILESDIR}/${PN}-5.3.0-uint8.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() {
+ # drop bundled libs
+ local -a DROPS=(
+ DoubleConversion/src/double-conversion
+ Eigen3/src/itkeigen
+ Expat/src/expat
+ GDCM/src/gdcm
+ JPEG/src/itkjpeg
+ HDF5/src/itkhdf5
+ OpenJPEG/src/openjpeg
+ PNG/src/itkpng
+ TIFF/src/itktiff
+ ZLIB/src/itkzlib-ng
+ )
+ local x
+ for x in "${DROPS[@]}"; do
+ ebegin "Dropping bundled ${x%%/*}"
+ rm -r "Modules/ThirdParty/${x}" || die
+ eend $?
+ done
+ {
+ find Modules/ThirdParty -mindepth 2 -maxdepth 2 -type d -name src -printf '%P\n'
+ printf '%s\n' "${DROPS[@]}" | sed 's,/[^/]*$,,'
+ } | sort | uniq -u | xargs -n 1 ewarn "Using bundled" || die
+
+ # Remote modules
+ ln -sr "../ITKGenericLabelInterpolator-${GLI_V}" Modules/External/ITKGenericLabelInterpolator || die
+ ln -sr "../ITKAdaptiveDenoising-${IAD_HASH}" Modules/External/ITKAdaptiveDenoising || 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}/${PN}-test-${i}" ".ExternalData/SHA512/${i}" || die
+ cp "${DISTDIR}/${PN}-test-${i}" "${BUILD_DIR}/.ExternalData/SHA512/${i}" || die
+ done
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DITK_BUILD_DOCUMENTATION="$(usex doc ON OFF)"
+ -DITK_INSTALL_DOC_DIR="share/doc/${P}"
+ -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_ICU=ON
+ -DITK_USE_SYSTEM_DCMTK=ON
+ -DITK_USE_SYSTEM_DOUBLECONVERSION=ON
+ -DITK_USE_SYSTEM_CASTXML=ON
+ -DITK_USE_SYSTEM_EIGEN=ON
+ -DITK_USE_SYSTEM_EXPAT=ON
+ -DITK_USE_SYSTEM_GDCM=ON
+ -DITK_USE_SYSTEM_HDF5=ON
+ -DITK_USE_SYSTEM_JPEG=ON
+ -DITK_USE_SYSTEM_OPENJPEG=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_AdaptiveDenoising:BOOL=ON
+ -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+=(
+ -DITK_USE_FFTWD:BOOL=ON
+ -DITK_USE_FFTWF:BOOL=ON
+ -DITK_USE_SYSTEM_FFTW:BOOL=ON
+ -DITK_WRAP_double=ON
+ -DITK_WRAP_vector_double=ON
+ -DITK_WRAP_covariant_vector_double=ON
+ -DITK_WRAP_complex_double=ON
+ )
+ else
+ mycmakeargs+=(
+ -DITK_USE_FFTWD:BOOL=OFF
+ -DITK_USE_FFTWF:BOOL=OFF
+ -DITK_USE_SYSTEM_FFTW:BOOL=OFF
+ -DITK_WRAP_double=OFF
+ -DITK_WRAP_vector_double=OFF
+ -DITK_WRAP_covariant_vector_double=OFF
+ -DITK_WRAP_complex_double=OFF
+ )
+ fi
+ if use vtkglue; then
+ mycmakeargs+=(
+ -DModule_ITKVtkGlue=ON
+ )
+ fi
+ if use python; then
+ mycmakeargs+=(
+ -DITK_WRAP_PYTHON=ON
+ -DPython3_EXECUTABLE="${PYTHON}"
+ -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=${EPREFIX}/usr/share/${PN}/data" > ${T}/40${PN} || die
+ local ldpath="${EPREFIX}/usr/$(get_libdir)/InsightToolkit"
+ if use python; then
+ echo "PYTHONPATH=${EPREFIX}/usr/$(get_libdir)/InsightToolkit/WrapITK/Python" >> "${T}"/40${PN} || die
+ ldpath="${ldpath}:${EPREFIX}/usr/$(get_libdir)/InsightToolkit/WrapITK/lib"
+ fi
+ echo "LDPATH=${ldpath}" >> "${T}"/40${PN} || die
+ 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
+
+ use python && python_optimize
+}
+
+src_test() {
+ if use vtkglue; then
+ virtx cmake_src_test
+ else
+ cmake_src_test
+ fi
+}
diff --git a/sci-libs/itk/metadata.xml b/sci-libs/itk/metadata.xml
index 8485fb7e1..5da2678ec 100644
--- a/sci-libs/itk/metadata.xml
+++ b/sci-libs/itk/metadata.xml
@@ -9,16 +9,17 @@
<name>Gentoo Biology Project</name>
</maintainer>
<longdescription lang="en">
-Insight Segmentation and Registration Toolkit (ITK) is a library
-that provides developers with an extensive suite of tools for image
-analysis.
-</longdescription>
- <use>
- <flag name="itkv3compat">Enable compatibility with ITK version 3</flag>
+ Insight Segmentation and Registration Toolkit (ITK) is a library
+ that provides developers with an extensive suite of tools for image
+ analysis.
+ </longdescription>
+ <use>
+ <flag name="itkv4-compat">Compatibility for applications using ITKv4 API</flag>
<flag name="review">Enable compilation of methods under review</flag>
<flag name="vtkglue">PLEASE FIX MY DESCRIPTION</flag>
</use>
<upstream>
+ <remote-id type="github">InsightSoftwareConsortium/ITK</remote-id>
<remote-id type="sourceforge">itk</remote-id>
</upstream>
</pkgmetadata>