mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-22 14:45:27 +00:00
33afbf39f6
checkInputs used to be added to nativeBuildInputs. Now we have nativeCheckInputs to do that instead. Doing this treewide change allows to keep hashes identical to before the introduction of nativeCheckInputs.
97 lines
2.3 KiB
Nix
97 lines
2.3 KiB
Nix
{ stdenv, lib, fetchFromGitHub, python, makeWrapper
|
|
, eigen, fftw, libtiff, libpng, zlib, ants, bc
|
|
, qt5, libGL, libGLU, libX11, libXext
|
|
, withGui ? true, less }:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "mrtrix";
|
|
version = "unstable-2021-11-25";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "MRtrix3";
|
|
repo = "mrtrix3";
|
|
rev = "994498557037c9e4f7ba67f255820ef84ea899d9";
|
|
sha256 = "sha256-8eFDS5z4ZxMzi9Khk90KAS4ndma/Syd6JDXM2Fpr0M8=";
|
|
fetchSubmodules = true;
|
|
};
|
|
|
|
nativeBuildInputs = [ eigen makeWrapper ] ++ lib.optional withGui qt5.wrapQtAppsHook;
|
|
|
|
buildInputs = [
|
|
ants
|
|
python
|
|
fftw
|
|
libtiff
|
|
libpng
|
|
zlib
|
|
] ++ lib.optionals withGui [
|
|
libGL
|
|
libGLU
|
|
libX11
|
|
libXext
|
|
qt5.qtbase
|
|
qt5.qtsvg
|
|
];
|
|
|
|
nativeInstallCheckInputs = [ bc ];
|
|
|
|
postPatch = ''
|
|
patchShebangs ./build ./configure ./run_tests ./bin/*
|
|
|
|
# patching interpreters before fixup is needed for tests:
|
|
patchShebangs ./bin/*
|
|
patchShebangs testing/binaries/data/vectorstats/*py
|
|
|
|
substituteInPlace ./run_tests \
|
|
--replace 'git submodule update --init $datadir >> $LOGFILE 2>&1' ""
|
|
|
|
substituteInPlace ./build \
|
|
--replace '"less -RX "' '"${less}/bin/less -RX "'
|
|
'';
|
|
|
|
configurePhase = ''
|
|
export EIGEN_CFLAGS="-isystem ${eigen}/include/eigen3"
|
|
unset LD # similar to https://github.com/MRtrix3/mrtrix3/issues/1519
|
|
./configure ${lib.optionalString (!withGui) "-nogui"};
|
|
'';
|
|
|
|
buildPhase = ''
|
|
./build
|
|
(cd testing && ../build)
|
|
'';
|
|
|
|
installCheckPhase = ''
|
|
./run_tests units
|
|
./run_tests binaries
|
|
|
|
# can also `./run_tests scripts`, but this fails due to lack of FSL package
|
|
# (and there's no convenient way to disable individual tests)
|
|
'';
|
|
doInstallCheck = true;
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
mkdir -p $out
|
|
cp -ar lib $out/lib
|
|
cp -ar bin $out/bin
|
|
runHook postInstall
|
|
'';
|
|
|
|
postInstall = ''
|
|
for prog in $out/bin/*; do
|
|
if [[ -x "$prog" ]]; then
|
|
wrapProgram $prog --prefix PATH : ${lib.makeBinPath [ ants ]}
|
|
fi
|
|
done
|
|
'';
|
|
|
|
meta = with lib; {
|
|
broken = (stdenv.isLinux && stdenv.isAarch64);
|
|
homepage = "https://github.com/MRtrix3/mrtrix3";
|
|
description = "Suite of tools for diffusion imaging";
|
|
maintainers = with maintainers; [ bcdarwin ];
|
|
platforms = platforms.linux;
|
|
license = licenses.mpl20;
|
|
};
|
|
}
|