Subject: [PATCH] gnu: Add simpleitk.

From: Antero Mejr <[email-masked]>
Date: Fri, 17 Jun 2022 20:55:55 +0000

* gnu/packages/image-processing.scm (simpleitk): New variable.
---
 gnu/packages/image-processing.scm | 41 +++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index 0c25b41dad..2c0141696b 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2021 Guillaume Le Vaillant <[email-masked]>
 ;;; Copyright © 2021 Ivan Gankevich <[email-masked]>
 ;;; Copyright © 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2022 Antero Mejr <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -72,6 +73,7 @@ (define-module (gnu packages image-processing)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages lua)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
@@ -84,6 +86,7 @@ (define-module (gnu packages image-processing)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages swig)
   #:use-module (gnu packages tbb)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
@@ -1372,3 +1375,41 @@ (define-public labelme
       "Image and video labeling tool supporting different shapes like
 polygons, rectangles, circles, lines, points and VOC/COCO export.")
     (license license:gpl3+)))
+
+(define-public simpleitk
+  (package
+    (name "simpleitk")
+    (version "2.1.1.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/SimpleITK/SimpleITK")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1dgwl6pp2hw0rsr5f7xahic3whd6py3rmgg645v450c0vwih6vjj"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:tests? #f ;fetches external test data from network
+           #:configure-flags
+           #~(list (string-append "-DITK_DIR=" #$insight-toolkit)
+                   "-DBUILD_TESTING=OFF"
+                   "-DBUILD_EXAMPLES=OFF"
+                   "-DBUILD_SHARED_LIBS=ON")
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'fix-testing-cmake
+                 (lambda _
+                   (substitute* "Testing/Unit/CMakeLists.txt"
+                     (("add_subdirectory\\(TestBase\\)")
+                      "find_package(GTest REQUIRED)
+include_directories(${GTEST_INCLUDE_DIR})
+add_subdirectory(TestBase)")))))))
+    (native-inputs (list googletest swig))
+    (inputs (list insight-toolkit hdf5 lua))
+    (home-page "https://simpleitk.org/")
+    (synopsis "Simplified interfaces to the ITK image processing toolkit")
+    (description "SimpleITK is a simplified interface to the Insight Toolkit
+(ITK) for image registration and segmentation.")
+    (license license:asl2.0)))
-- 
2.36.1