From 39fb426da55f30b021844f0e8bddd5f2ffb76b8e Mon Sep 17 00:00:00 2001 From: Ben Darwin Date: Wed, 22 Mar 2023 13:56:07 -0400 Subject: [PATCH 1/3] itk: enable SimpleITKFilters; minor refactor This is needed for the SimpleITK Python package to import successfully rather than throw an error due to missing symbols. --- pkgs/development/libraries/itk/generic.nix | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/pkgs/development/libraries/itk/generic.nix b/pkgs/development/libraries/itk/generic.nix index 78f4d56bfac6..3a6b2afee0d9 100644 --- a/pkgs/development/libraries/itk/generic.nix +++ b/pkgs/development/libraries/itk/generic.nix @@ -3,10 +3,7 @@ { lib, stdenv, fetchFromGitHub, cmake, makeWrapper , pkg-config, libX11, libuuid, xz, vtk, Cocoa }: -stdenv.mkDerivation rec { - pname = "itk"; - inherit version; - +let itkGenericLabelInterpolatorSrc = fetchFromGitHub { owner = "InsightSoftwareConsortium"; repo = "ITKGenericLabelInterpolator"; @@ -21,6 +18,18 @@ stdenv.mkDerivation rec { hash = "sha256-deJbza36c0Ohf9oKpO2T4po37pkyI+2wCSeGL4r17Go="; }; + itkSimpleITKFiltersSrc = fetchFromGitHub { + owner = "InsightSoftwareConsortium"; + repo = "ITKSimpleITKFilters"; + rev = "bb896868fc6480835495d0da4356d5db009592a6"; + hash = "sha256-MfaIA0xxA/pzUBSwnAevr17iR23Bo5iQO2cSyknS3o4="; + }; +in + +stdenv.mkDerivation { + pname = "itk"; + inherit version; + src = fetchFromGitHub { owner = "InsightSoftwareConsortium"; repo = "ITK"; @@ -36,6 +45,7 @@ stdenv.mkDerivation rec { --replace "@OPENJPEG_INSTALL_LIB_DIR@" "@OPENJPEG_INSTALL_FULL_LIB_DIR@" ln -sr ${itkGenericLabelInterpolatorSrc} Modules/External/ITKGenericLabelInterpolator ln -sr ${itkAdaptiveDenoisingSrc} Modules/External/ITKAdaptiveDenoising + ln -sr ${itkSimpleITKFiltersSrc} Modules/External/ITKSimpleITKFilters ''; cmakeFlags = [ @@ -45,6 +55,7 @@ stdenv.mkDerivation rec { "-DModule_ITKMINC=ON" "-DModule_ITKIOMINC=ON" "-DModule_ITKIOTransformMINC=ON" + "-DModule_SimpleITKFilters=ON" "-DModule_ITKVtkGlue=ON" "-DModule_ITKReview=ON" "-DModule_MGHIO=ON" @@ -69,7 +80,7 @@ stdenv.mkDerivation rec { meta = { description = "Insight Segmentation and Registration Toolkit"; - homepage = "https://www.itk.org/"; + homepage = "https://www.itk.org"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [viric]; }; From 9e182deb290b2602dc86630810818d5e0e4ae9dd Mon Sep 17 00:00:00 2001 From: Ben Darwin Date: Wed, 22 Mar 2023 13:57:46 -0400 Subject: [PATCH 2/3] simpleitk: collapse `out` and `dev` outputs Splitting the outputs confuses downstream CMake configure. --- pkgs/development/libraries/simpleitk/default.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/development/libraries/simpleitk/default.nix b/pkgs/development/libraries/simpleitk/default.nix index a09ac168ba46..88b1d1ade174 100644 --- a/pkgs/development/libraries/simpleitk/default.nix +++ b/pkgs/development/libraries/simpleitk/default.nix @@ -4,12 +4,10 @@ stdenv.mkDerivation rec { pname = "simpleitk"; version = "2.2.1"; - outputs = [ "out" "dev" ]; - src = fetchFromGitHub { owner = "SimpleITK"; repo = "SimpleITK"; - rev = "v${version}"; + rev = "refs/tags/v${version}"; hash = "sha256-0YxmixUTXpjegZQv7DDCNTWFTH8QEWqQQszee7aQ5EI="; }; From 157285ffee5174defc6302288afe8210b1479f2d Mon Sep 17 00:00:00 2001 From: Ben Darwin Date: Wed, 22 Mar 2023 14:04:46 -0400 Subject: [PATCH 3/3] python310Packages.simpleitk: init at 2.2.1 --- .../python-modules/simpleitk/default.nix | 27 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 4 +++ 2 files changed, 31 insertions(+) create mode 100644 pkgs/development/python-modules/simpleitk/default.nix diff --git a/pkgs/development/python-modules/simpleitk/default.nix b/pkgs/development/python-modules/simpleitk/default.nix new file mode 100644 index 000000000000..cc138695e3fd --- /dev/null +++ b/pkgs/development/python-modules/simpleitk/default.nix @@ -0,0 +1,27 @@ +{ lib +, buildPythonPackage +, pythonOlder +, fetchFromGitHub +, cmake +, swig4 +, itk +, numpy +, simpleitk +, scikit-build +}: + +buildPythonPackage rec { + inherit (simpleitk) pname version src meta; + format = "pyproject"; + disabled = pythonOlder "3.8"; + + sourceRoot = "source/Wrapping/Python"; + preBuild = '' + make + ''; + + nativeBuildInputs = [ cmake swig4 scikit-build ]; + propagatedBuildInputs = [ itk simpleitk numpy ]; + + pythonImportsCheck = [ "SimpleITK" ]; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index f24f353537b6..d8c188c61cf1 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10742,6 +10742,10 @@ self: super: with self; { simplehound = callPackage ../development/python-modules/simplehound { }; + simpleitk = callPackage ../development/python-modules/simpleitk { + inherit (pkgs) simpleitk; + }; + simplejson = callPackage ../development/python-modules/simplejson { }; simplekml = callPackage ../development/python-modules/simplekml { };