guix: dune-build-system: Add a package parameter.
* guix/build-system/dune.scm: Add a package parameter. * guix/build/dune.scm (build, test, install): Use it. * doc/guix.texi: Document it.
This commit is contained in:
parent
f92854fea1
commit
78b3748c1c
@ -5816,6 +5816,11 @@ list of flags passed to the @code{dune} command during the build.
|
|||||||
The @code{#:jbuild?} parameter can be passed to use the @code{jbuild}
|
The @code{#:jbuild?} parameter can be passed to use the @code{jbuild}
|
||||||
command instead of the more recent @code{dune} command while building
|
command instead of the more recent @code{dune} command while building
|
||||||
a package. Its default value is @code{#f}.
|
a package. Its default value is @code{#f}.
|
||||||
|
|
||||||
|
The @code{#:package} parameter can be passed to specify a package name, which
|
||||||
|
is useful when a package contains multiple packages and you want to build
|
||||||
|
only one of them. This is equivalent to passing the @code{-p} argument to
|
||||||
|
@code{dune}.
|
||||||
@end defvr
|
@end defvr
|
||||||
|
|
||||||
@defvr {Scheme Variable} go-build-system
|
@defvr {Scheme Variable} go-build-system
|
||||||
|
@ -87,6 +87,7 @@
|
|||||||
(build-flags ''())
|
(build-flags ''())
|
||||||
(out-of-source? #t)
|
(out-of-source? #t)
|
||||||
(jbuild? #f)
|
(jbuild? #f)
|
||||||
|
(package #f)
|
||||||
(tests? #t)
|
(tests? #t)
|
||||||
(test-flags ''())
|
(test-flags ''())
|
||||||
(test-target "test")
|
(test-target "test")
|
||||||
@ -125,6 +126,7 @@ provides a 'setup.ml' file as its build system."
|
|||||||
#:build-flags ,build-flags
|
#:build-flags ,build-flags
|
||||||
#:out-of-source? ,out-of-source?
|
#:out-of-source? ,out-of-source?
|
||||||
#:jbuild? ,jbuild?
|
#:jbuild? ,jbuild?
|
||||||
|
#:package ,package
|
||||||
#:tests? ,tests?
|
#:tests? ,tests?
|
||||||
#:test-target ,test-target
|
#:test-target ,test-target
|
||||||
#:install-target ,install-target
|
#:install-target ,install-target
|
||||||
|
@ -31,27 +31,30 @@
|
|||||||
;; Code:
|
;; Code:
|
||||||
|
|
||||||
(define* (build #:key (build-flags '()) (jbuild? #f)
|
(define* (build #:key (build-flags '()) (jbuild? #f)
|
||||||
(use-make? #f) #:allow-other-keys)
|
(use-make? #f) (package #f) #:allow-other-keys)
|
||||||
"Build the given package."
|
"Build the given package."
|
||||||
(let ((program (if jbuild? "jbuilder" "dune")))
|
(let ((program (if jbuild? "jbuilder" "dune")))
|
||||||
(apply invoke program "build" "@install" build-flags))
|
(apply invoke program "build" "@install"
|
||||||
|
(append (if package (list "-p" package) '()) build-flags)))
|
||||||
#t)
|
#t)
|
||||||
|
|
||||||
(define* (check #:key (test-flags '()) (test-target "test") tests?
|
(define* (check #:key (test-flags '()) (test-target "test") tests?
|
||||||
(jbuild? #f) #:allow-other-keys)
|
(jbuild? #f) (package #f) #:allow-other-keys)
|
||||||
"Test the given package."
|
"Test the given package."
|
||||||
(when tests?
|
(when tests?
|
||||||
(let ((program (if jbuild? "jbuilder" "dune")))
|
(let ((program (if jbuild? "jbuilder" "dune")))
|
||||||
(apply invoke program "runtest" test-target test-flags)))
|
(apply invoke program "runtest" test-target
|
||||||
|
(append (if package (list "-p" package) '()) test-flags))))
|
||||||
#t)
|
#t)
|
||||||
|
|
||||||
(define* (install #:key outputs (install-target "install") (jbuild? #f)
|
(define* (install #:key outputs (install-target "install") (jbuild? #f)
|
||||||
#:allow-other-keys)
|
(package #f) #:allow-other-keys)
|
||||||
"Install the given package."
|
"Install the given package."
|
||||||
(let ((out (assoc-ref outputs "out"))
|
(let ((out (assoc-ref outputs "out"))
|
||||||
(program (if jbuild? "jbuilder" "dune")))
|
(program (if jbuild? "jbuilder" "dune")))
|
||||||
(invoke program install-target "--prefix" out "--libdir"
|
(apply invoke program install-target "--prefix" out "--libdir"
|
||||||
(string-append out "/lib/ocaml/site-lib")))
|
(string-append out "/lib/ocaml/site-lib")
|
||||||
|
(if package (list package) '())))
|
||||||
#t)
|
#t)
|
||||||
|
|
||||||
(define %standard-phases
|
(define %standard-phases
|
||||||
|
Loading…
Reference in New Issue
Block a user