mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
gnu: Add simpleitk.
* gnu/packages/image-processing.scm (simpleitk): New variable. Change-Id: I96b270097fb54ee4566c278b87014bf893282894 Signed-off-by: Andreas Enge <andreas@enge.fr>
This commit is contained in:
parent
7f2fb067f2
commit
2fd581fba1
1 changed files with 118 additions and 0 deletions
|
@ -88,6 +88,7 @@
|
||||||
#:use-module (gnu packages image)
|
#:use-module (gnu packages image)
|
||||||
#:use-module (gnu packages imagemagick)
|
#:use-module (gnu packages imagemagick)
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
|
#:use-module (gnu packages lua)
|
||||||
#:use-module (gnu packages maths)
|
#:use-module (gnu packages maths)
|
||||||
#:use-module (gnu packages mpi)
|
#:use-module (gnu packages mpi)
|
||||||
#:use-module (gnu packages opencl)
|
#:use-module (gnu packages opencl)
|
||||||
|
@ -108,6 +109,7 @@
|
||||||
#:use-module (gnu packages sphinx)
|
#:use-module (gnu packages sphinx)
|
||||||
#:use-module (gnu packages sqlite)
|
#:use-module (gnu packages sqlite)
|
||||||
#:use-module (gnu packages ssh)
|
#:use-module (gnu packages ssh)
|
||||||
|
#:use-module (gnu packages statistics)
|
||||||
#:use-module (gnu packages swig)
|
#:use-module (gnu packages swig)
|
||||||
#:use-module (gnu packages tbb)
|
#:use-module (gnu packages tbb)
|
||||||
#:use-module (gnu packages textutils)
|
#:use-module (gnu packages textutils)
|
||||||
|
@ -1748,6 +1750,122 @@ Scan Tailer Advanced is a fork of Scan Tailer that merges Scan Tailor Featured
|
||||||
and Scan Tailor Enhanced versions as well as including many more bug fixes.")
|
and Scan Tailor Enhanced versions as well as including many more bug fixes.")
|
||||||
(license license:gpl3+))))
|
(license license:gpl3+))))
|
||||||
|
|
||||||
|
(define-public simpleitk
|
||||||
|
(package
|
||||||
|
(name "simpleitk")
|
||||||
|
(version "2.5.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 "1ykrfrfh2012cg1122689w23pan2y731sszfpb701zhsb6fwv7j7"))))
|
||||||
|
(build-system cmake-build-system)
|
||||||
|
(outputs '("out" "python" "r"))
|
||||||
|
(arguments
|
||||||
|
(list
|
||||||
|
#:configure-flags
|
||||||
|
#~(list "-DBUILD_SHARED_LIBS=ON"
|
||||||
|
"-DWRAP_LUA=OFF"
|
||||||
|
"-DWRAP_PYTHON=ON"
|
||||||
|
"-DWRAP_R=ON"
|
||||||
|
"-DSimpleITK_PYTHON_USE_VIRTUALENV=OFF")
|
||||||
|
#:phases
|
||||||
|
#~(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'early-GTest-discovery
|
||||||
|
(lambda _
|
||||||
|
;; Find GTest before targets link to 'GTest::GTest'.
|
||||||
|
(substitute* "Testing/Unit/CMakeLists.txt"
|
||||||
|
(("add_subdirectory\\(TestBase\\)" anchor)
|
||||||
|
(string-append "find_package(GTest REQUIRED)\n" anchor)))))
|
||||||
|
(add-after 'unpack 'extract-test-data
|
||||||
|
(lambda _
|
||||||
|
(invoke "tar" "xvf"
|
||||||
|
#$(this-package-native-input
|
||||||
|
(string-append "SimpleITKData-" version ".tar.gz"))
|
||||||
|
"--strip-components=1")))
|
||||||
|
(add-after 'unpack 'fix-runpath
|
||||||
|
(lambda _
|
||||||
|
;; The SWIG-generated shared libraries do not have SimpleITK's
|
||||||
|
;; libraries in their RUNPATH.
|
||||||
|
(define (cmake-snippet start)
|
||||||
|
(string-append
|
||||||
|
start
|
||||||
|
"set_target_properties(${SWIG_MODULE_SimpleITK_TARGET_NAME} "
|
||||||
|
"PROPERTIES BUILD_WITH_INSTALL_RPATH TRUE "
|
||||||
|
"INSTALL_RPATH \"" #$output "/lib\")\n"))
|
||||||
|
(substitute* "Wrapping/Python/CMakeLists.txt"
|
||||||
|
(("^set\\(SWIG_MODULE_SimpleITKPython.*" anchor)
|
||||||
|
(cmake-snippet anchor)))
|
||||||
|
(substitute* "Wrapping/R/CMakeLists.txt"
|
||||||
|
(("^set\\(SWIG_MODULE_SimpleITKR.*" anchor)
|
||||||
|
(cmake-snippet anchor)))))
|
||||||
|
(add-after 'unpack 'patch-cmake-config-itk-path
|
||||||
|
(lambda _
|
||||||
|
;; Allow building SimpleITK C++ projects without ITK installed
|
||||||
|
;; in the profile.
|
||||||
|
#$(let*
|
||||||
|
((itk (this-package-input "insight-toolkit"))
|
||||||
|
(itk-version (package-version itk))
|
||||||
|
(itk-version-major+minor
|
||||||
|
(version-major+minor itk-version)))
|
||||||
|
#~(substitute* "SimpleITKConfig.cmake.in"
|
||||||
|
(((string-append
|
||||||
|
"find_package\\(ITK \"@ITK_VERSION@\" "
|
||||||
|
"EXACT REQUIRED\\)"))
|
||||||
|
(string-append
|
||||||
|
"find_package(ITK \"" #$itk-version
|
||||||
|
"\" EXACT REQUIRED PATHS " #$itk
|
||||||
|
"/lib/cmake/ITK-"
|
||||||
|
#$itk-version-major+minor ")"))))))
|
||||||
|
(add-after 'install 'install-language-extension-modules
|
||||||
|
(lambda _
|
||||||
|
(with-directory-excursion "Wrapping/Python"
|
||||||
|
(invoke "python3" "setup.py" "bdist_wheel")
|
||||||
|
(apply invoke "pip" "--no-cache-dir" "--no-input" "install"
|
||||||
|
"--no-deps" "--prefix" #$output:python
|
||||||
|
(find-files "dist" "\\.whl$")))
|
||||||
|
(let ((r-package-path
|
||||||
|
(string-append #$output:r "/site-library/SimpleITK")))
|
||||||
|
(mkdir-p r-package-path)
|
||||||
|
(copy-recursively "Wrapping/R/R_libs/SimpleITK"
|
||||||
|
r-package-path))))
|
||||||
|
(delete 'check)
|
||||||
|
(add-after 'install 'check-after-install
|
||||||
|
;; Run the tests when the SimpleITK libraries are where the
|
||||||
|
;; language extension modules expect them to be.
|
||||||
|
(assoc-ref %standard-phases 'check)))))
|
||||||
|
(home-page "https://simpleitk.org")
|
||||||
|
(inputs (list insight-toolkit python r-minimal))
|
||||||
|
(native-inputs
|
||||||
|
(list googletest
|
||||||
|
lua
|
||||||
|
python-numpy ;for tests
|
||||||
|
python-pip
|
||||||
|
python-setuptools
|
||||||
|
python-wheel
|
||||||
|
swig-next
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"https://github.com/SimpleITK/SimpleITK/releases/download/v"
|
||||||
|
version "/SimpleITKData-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"13y44qqsgsvbrm84073i8clhggdgk8f36i6102sjg4j3fq790gal")))))
|
||||||
|
(synopsis "Simplified interface to @acronym{ITK, Insight Toolkit}")
|
||||||
|
(description
|
||||||
|
"SimpleITK is an image analysis toolkit built on top of @acronym{ITK,
|
||||||
|
Insight Toolkit}. It provides a simplified interface to most of the
|
||||||
|
image filters and the input/output and registration frameworks in
|
||||||
|
@acronym{ITK, Insight Toolkit}. It is written in C++ and provides
|
||||||
|
bindings for interpreted languages. This package includes the C++,
|
||||||
|
Python and R interfaces.")
|
||||||
|
(license license:asl2.0)))
|
||||||
|
|
||||||
(define-public stiff
|
(define-public stiff
|
||||||
(package
|
(package
|
||||||
(name "stiff")
|
(name "stiff")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue