itk: enable additional modules

Enable MGHIO, GenericLabelInterpolator, and AdaptiveDenoising ITK modules,
which are required by current versions of ANTs (e.g. 2.3.5 and 2.4.0);
see, e.g., https://github.com/ANTsX/ANTs/issues/1353#issuecomment-1117462739,
the Gentoo ANTs package, or the ANTs SuperBuild itself.
Updating ANTs will, in particular, allow removal of itk4 and vtk_7 from Nixpkgs.
Unfortunately, these ANTs releases do not build against the version of ITK (5.2.1)
current in tree, so we need to either add another ITK 5.x version or wait until ITK
is bumped to 5.3.x (currently still in beta) in Nixpkgs.
This commit is contained in:
Ben Darwin 2022-08-14 23:29:02 -04:00
parent c5e81898a3
commit 6d4c3b07c2

View File

@ -5,6 +5,20 @@ stdenv.mkDerivation rec {
pname = "itk";
version = "5.2.1";
itkGenericLabelInterpolatorSrc = fetchFromGitHub {
owner = "InsightSoftwareConsortium";
repo = "ITKGenericLabelInterpolator";
rev = "2f3768110ffe160c00c533a1450a49a16f4452d9";
hash = "sha256-Cm3jg14MMnbr/sP+gqR2Rh25xJjoRvpmY/jP/DKH978=";
};
itkAdaptiveDenoisingSrc = fetchFromGitHub {
owner = "ntustison";
repo = "ITKAdaptiveDenoising";
rev = "24825c8d246e941334f47968553f0ae388851f0c";
hash = "sha256-deJbza36c0Ohf9oKpO2T4po37pkyI+2wCSeGL4r17Go=";
};
src = fetchFromGitHub {
owner = "InsightSoftwareConsortium";
repo = "ITK";
@ -16,16 +30,22 @@ stdenv.mkDerivation rec {
substituteInPlace CMake/ITKSetStandardCompilerFlags.cmake \
--replace "-march=corei7" "" \
--replace "-mtune=native" ""
ln -sr ${itkGenericLabelInterpolatorSrc} Modules/External/ITKGenericLabelInterpolator
ln -sr ${itkAdaptiveDenoisingSrc} Modules/External/ITKAdaptiveDenoising
'';
cmakeFlags = [
"-DBUILD_EXAMPLES=OFF"
"-DBUILD_SHARED_LIBS=ON"
"-DITK_FORBID_DOWNLOADS=ON"
"-DModule_ITKMINC=ON"
"-DModule_ITKIOMINC=ON"
"-DModule_ITKIOTransformMINC=ON"
"-DModule_ITKVtkGlue=ON"
"-DModule_ITKReview=ON"
"-DModule_MGHIO=ON"
"-DModule_AdaptiveDenoising=ON"
"-DModule_GenericLabelInterpolator=ON"
];
nativeBuildInputs = [ cmake xz makeWrapper ];