gnu: Add gecode.

* gnu/packages/maths.scm (gecode): New variable.
This commit is contained in:
Liliana Marie Prikler 2021-07-24 14:30:55 +02:00
parent 45e132ee7a
commit 93cef6e768
No known key found for this signature in database
GPG key ID: 442A84B8C70E2F87

View file

@ -2045,6 +2045,77 @@ (define-public clp
and quadratic objectives using the Simplex algorithm.")
(license license:epl1.0)))
(define-public gecode
(package
(name "gecode")
(version "6.2.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Gecode/gecode")
(commit (string-append "release-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0b1cq0c810j1xr2x9y9996p894571sdxng5h74py17c6nr8c6dmk"))
(modules '((guix build utils)))
(snippet
'(begin
;; delete generated sources
(for-each delete-file
'("gecode/kernel/var-imp.hpp"
"gecode/kernel/var-type.hpp"))))))
(outputs '("out" "examples"))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list (string-append "GLDFLAGS=-Wl,-rpath="
(assoc-ref %outputs "out")
"/lib")
"--enable-examples=no")
#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 rdelim)
(ice-9 popen))
#:phases
(modify-phases %standard-phases
(add-after 'build 'build-examples
(lambda* (#:key outputs #:allow-other-keys)
(invoke "make" "compileexamples")))
;; The Makefile disrespects GLDFLAGS for some reason, so we have to
;; patch it ourselves... *sigh*
(add-after 'install 'fix-rpath
(lambda* (#:key outputs #:allow-other-keys)
(let ((libdir (string-append (assoc-ref outputs "out") "/lib")))
(for-each
(lambda (file)
(let* ((pipe (open-pipe* OPEN_READ "patchelf"
"--print-rpath" file))
(line (read-line pipe)))
(and (zero? (close-pipe pipe))
(invoke "patchelf" "--set-rpath"
(string-append libdir ":" line)
file))))
(find-files libdir ".*\\.so$")))))
(add-after 'install 'install-examples
(lambda* (#:key outputs #:allow-other-keys)
(invoke "make" "installexamples"
(string-append "bindir=" (assoc-ref outputs "examples")
"/bin"))))
;; Tests depend on installed libraries.
(delete 'check)
(add-after 'fix-rpath 'check
(assoc-ref %standard-phases 'check)))))
(native-inputs
`(("patchelf" ,patchelf)
("perl" ,perl)
("sed" ,sed)))
(home-page "https://www.gecode.org")
(synopsis "Toolkit for developing constraint-based systems")
(description "Gecode is a C++ toolkit for developing constraint-based
systems and applications. It provides a modular and extensible solver.")
(license license:expat)))
(define-public libflame
(package
(name "libflame")