gnu: Add python-tbb.

* gnu/packages/tbb.scm (python-tbb): New variable.
This commit is contained in:
Ricardo Wurmus 2022-12-16 15:34:31 +01:00
parent 7ce9b7e706
commit 8548ba5847
No known key found for this signature in database
GPG key ID: 197A5888235FACAC

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
@ -23,11 +23,14 @@
(define-module (gnu packages tbb)
#:use-module (guix packages)
#:use-module (guix licenses)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (gnu packages))
#:use-module (gnu packages)
#:use-module (gnu packages python)
#:use-module (gnu packages swig))
(define-public tbb
(package
@ -56,6 +59,44 @@ (define-public tbb
tasks, synchronization primitives, atomic operations, and more.")
(license asl2.0)))
(define-public python-tbb
(package
(inherit tbb)
(name "python-tbb")
(arguments
(list
#:configure-flags
#~(list "-DTBB_STRICT=OFF"
"-DTBB4PY_BUILD=ON")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-python-install-directory
(lambda _
(substitute* "python/CMakeLists.txt"
(("\\$\\{PYTHON_BUILD_WORK_DIR\\}/build")
#$output))
(substitute* "python/setup.py"
(("extra_link_args=tbb_flag,")
(string-append "extra_link_args=['-Wl,-rpath="
#$(this-package-input "tbb") "/lib"
"', '-Wl,-rpath=" #$output "/lib'] + tbb_flag,")))))
(replace 'build
(lambda _
(setenv "PYTHONHASHSEED" "0")
(setenv "PYTHONDONTWRITEBYTECODE" "1")
(invoke "make" "python_build")))
;; The 'build phase already installs the modules
(replace 'install
(lambda _
(with-directory-excursion "python/rml"
(invoke "make" "install"))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "ctest" "-R" "python_test" "--output-on-failure")))))))
(inputs (list python tbb))
(native-inputs (list swig))))
(define-public tbb-2020
(package
(name "tbb")