mirror of
https://github.com/TREX-CoE/qmckl.git
synced 2024-08-24 22:21:46 +02:00
Added SWIG input to make the dev build pass, otherwise the installation of the python_DATA files fails. This has to be fixed in the upstream build system!
119 lines
3.8 KiB
Scheme
119 lines
3.8 KiB
Scheme
(define-module (qmckl)
|
|
#:use-module (guix packages)
|
|
#:use-module (gnu packages autotools)
|
|
#:use-module (gnu packages pkg-config)
|
|
#:use-module (gnu packages gcc)
|
|
#:use-module (gnu packages maths) ;; contains blas, lapack, hdf5
|
|
#:use-module (trexio) ;; custom trexio module, has to be provided via the -L command line option
|
|
#:use-module (guix download)
|
|
#:use-module (guix build-system gnu)
|
|
#:use-module (guix licenses)
|
|
;; the modules below are additional requirements for building the dev version
|
|
#:use-module (guix git-download)
|
|
#:use-module (gnu packages python)
|
|
#:use-module (gnu packages emacs)
|
|
#:use-module (gnu packages swig)
|
|
#:use-module (gnu packages m4))
|
|
|
|
|
|
(define-public qmckl-hpc-0.2.1
|
|
(package
|
|
(name "qmckl-hpc")
|
|
(version "0.2.1")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (string-append "https://github.com/TREX-CoE/qmckl/releases/download/v" version
|
|
"/qmckl-" version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
;; the hash below is produced by guix download <url>
|
|
"18100fd4vp41saxiji734mq5lckjplbnmm1nz29da4azhxzbzki9"
|
|
))))
|
|
(build-system gnu-build-system)
|
|
(arguments
|
|
'(#:configure-flags
|
|
'("--enable-silent-rules"
|
|
"--enable-hpc"
|
|
"--with-openmp")))
|
|
(inputs
|
|
`(("trexio", trexio)
|
|
("gfortran", gfortran)
|
|
("openblas", openblas)
|
|
("lapack", lapack)
|
|
))
|
|
(synopsis "QMCkl: Quantum Monte Carlo Kernel Library")
|
|
(description "The main QMC algorithms are exposed in a simple language and provided a standard API
|
|
and tests to enable the development of high-performance QMCkl implementations taking
|
|
advantage of modern hardware.")
|
|
(home-page "https://trex-coe.github.io/qmckl/index.html")
|
|
(license bsd-3)))
|
|
|
|
|
|
;; Guix does not copy the .git folder so relying on it's presence is a bad practice !
|
|
(define-public qmckl-dev
|
|
(let ((commit "26f8a1b906c329fa92adc2480e1769b8a90347de")
|
|
(revision "1"))
|
|
(package
|
|
(name "qmckl-dev")
|
|
(version (git-version "0.2.2" revision commit))
|
|
(source (origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/TREX-CoE/qmckl")
|
|
(commit commit)
|
|
(recursive? #t))) ;; tried recursive to get htmlize - fails !
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32
|
|
;; the hash below is produced by `guix hash -rx .`
|
|
"0px3880bnciky8mwivll56108j9ncxri3ic2bhavcwn1z12z7lcb"
|
|
))))
|
|
(build-system gnu-build-system)
|
|
(arguments
|
|
'(#:configure-flags
|
|
'("--enable-hpc"
|
|
"--with-openmp")
|
|
;; ignoring make errors is a hack for the build to pass
|
|
;; #:make-flags '("-i")))
|
|
#:phases
|
|
;; this is a workaround to activate QMCKL_DEVEL mode
|
|
(modify-phases %standard-phases
|
|
(add-after 'unpack 'set_devel
|
|
(lambda _
|
|
(mkdir-p ".git")))
|
|
)))
|
|
(inputs
|
|
`(("trexio", trexio)
|
|
("gfortran", gfortran)
|
|
("openblas", openblas)
|
|
("lapack", lapack)
|
|
("python", python-wrapper)
|
|
("emacs", emacs)
|
|
))
|
|
;; these inputs are required for autogen.sh to work properly
|
|
(native-inputs
|
|
`(("autoconf", autoconf)
|
|
("automake", automake)
|
|
("libtool", libtool)
|
|
("pkg-config", pkg-config)
|
|
("swig", swig)
|
|
("m4", m4)
|
|
))
|
|
(synopsis "QMCkl: Quantum Monte Carlo Kernel Library")
|
|
(description "The main QMC algorithms are exposed in a simple language and provided a standard API
|
|
and tests to enable the development of high-performance QMCkl implementations taking
|
|
advantage of modern hardware.")
|
|
(home-page "https://trex-coe.github.io/qmckl/index.html")
|
|
(license bsd-3))))
|
|
|
|
|
|
(define-public qmckl
|
|
;; Default version of QMCkl - change this to benchmark installation from Git
|
|
;; qmckl-dev)
|
|
qmckl-hpc-0.2.1)
|
|
|
|
;; return qmckl variable so that `quix package -f qmckl.scm` works
|
|
qmckl
|
|
|