nixpkgs/pkgs/development/libraries/itk/default.nix
Ben Darwin 6d4c3b07c2 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.
2022-08-14 23:32:17 -04:00

65 lines
1.9 KiB
Nix

{ lib, stdenv, fetchFromGitHub, cmake, makeWrapper
, pkg-config, libX11, libuuid, xz, vtk, Cocoa }:
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";
rev = "v${version}";
sha256 = "sha256-KaVe9FMGm4ZVMpwAT12fA67T0qZS3ZueiI8z85+xSwE=";
};
postPatch = ''
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 ];
buildInputs = [ libX11 libuuid vtk ] ++ lib.optionals stdenv.isDarwin [ Cocoa ];
postInstall = ''
wrapProgram "$out/bin/h5c++" --prefix PATH ":" "${pkg-config}/bin"
'';
meta = {
description = "Insight Segmentation and Registration Toolkit";
homepage = "https://www.itk.org/";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [viric];
};
}