nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at netboot-syslinux-multiplatform 87 lines 3.1 kB view raw
1{ version, rev, sourceSha256 }: 2 3{ lib, stdenv, fetchFromGitHub, cmake, makeWrapper 4, pkg-config, libX11, libuuid, xz, vtk, Cocoa }: 5 6let 7 itkGenericLabelInterpolatorSrc = fetchFromGitHub { 8 owner = "InsightSoftwareConsortium"; 9 repo = "ITKGenericLabelInterpolator"; 10 rev = "2f3768110ffe160c00c533a1450a49a16f4452d9"; 11 hash = "sha256-Cm3jg14MMnbr/sP+gqR2Rh25xJjoRvpmY/jP/DKH978="; 12 }; 13 14 itkAdaptiveDenoisingSrc = fetchFromGitHub { 15 owner = "ntustison"; 16 repo = "ITKAdaptiveDenoising"; 17 rev = "24825c8d246e941334f47968553f0ae388851f0c"; 18 hash = "sha256-deJbza36c0Ohf9oKpO2T4po37pkyI+2wCSeGL4r17Go="; 19 }; 20 21 itkSimpleITKFiltersSrc = fetchFromGitHub { 22 owner = "InsightSoftwareConsortium"; 23 repo = "ITKSimpleITKFilters"; 24 rev = "bb896868fc6480835495d0da4356d5db009592a6"; 25 hash = "sha256-MfaIA0xxA/pzUBSwnAevr17iR23Bo5iQO2cSyknS3o4="; 26 }; 27in 28 29stdenv.mkDerivation { 30 pname = "itk"; 31 inherit version; 32 33 src = fetchFromGitHub { 34 owner = "InsightSoftwareConsortium"; 35 repo = "ITK"; 36 inherit rev; 37 sha256 = sourceSha256; 38 }; 39 40 postPatch = '' 41 substituteInPlace CMake/ITKSetStandardCompilerFlags.cmake \ 42 --replace "-march=corei7" "" \ 43 --replace "-mtune=native" "" 44 substituteInPlace Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmopenjpeg/src/lib/openjp2/libopenjp2.pc.cmake.in \ 45 --replace "@OPENJPEG_INSTALL_LIB_DIR@" "@OPENJPEG_INSTALL_FULL_LIB_DIR@" 46 ln -sr ${itkGenericLabelInterpolatorSrc} Modules/External/ITKGenericLabelInterpolator 47 ln -sr ${itkAdaptiveDenoisingSrc} Modules/External/ITKAdaptiveDenoising 48 ln -sr ${itkSimpleITKFiltersSrc} Modules/External/ITKSimpleITKFilters 49 ''; 50 51 cmakeFlags = [ 52 "-DBUILD_EXAMPLES=OFF" 53 "-DBUILD_SHARED_LIBS=ON" 54 "-DITK_FORBID_DOWNLOADS=ON" 55 "-DModule_ITKMINC=ON" 56 "-DModule_ITKIOMINC=ON" 57 "-DModule_ITKIOTransformMINC=ON" 58 "-DModule_SimpleITKFilters=ON" 59 "-DModule_ITKVtkGlue=ON" 60 "-DModule_ITKReview=ON" 61 "-DModule_MGHIO=ON" 62 "-DModule_AdaptiveDenoising=ON" 63 "-DModule_GenericLabelInterpolator=ON" 64 ]; 65 66 nativeBuildInputs = [ cmake xz makeWrapper ]; 67 buildInputs = [ libX11 libuuid vtk ] ++ lib.optionals stdenv.isDarwin [ Cocoa ]; 68 # Due to ITKVtkGlue=ON and the additional dependencies needed to configure VTK 9 69 # (specifically libGL and libX11 on Linux), 70 # it's now seemingly necessary for packages that configure ITK to 71 # also include configuration deps of VTK, even if VTK is not required or available. 72 # These deps were propagated from VTK 9 in https://github.com/NixOS/nixpkgs/pull/206935, 73 # so we simply propagate them again from ITK. 74 # This admittedly is a hack and seems like an issue with VTK 9's CMake configuration. 75 propagatedBuildInputs = vtk.propagatedBuildInputs; 76 77 postInstall = '' 78 wrapProgram "$out/bin/h5c++" --prefix PATH ":" "${pkg-config}/bin" 79 ''; 80 81 meta = { 82 description = "Insight Segmentation and Registration Toolkit"; 83 homepage = "https://www.itk.org"; 84 license = lib.licenses.asl20; 85 maintainers = with lib.maintainers; [viric]; 86 }; 87}