mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-18 17:01:51 -05:00
gnu: Add gecode.
* gnu/packages/maths.scm (gecode): New variable.
This commit is contained in:
parent
45e132ee7a
commit
93cef6e768
1 changed files with 71 additions and 0 deletions
|
@ -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")
|
||||
|
|
Loading…
Reference in a new issue