me
/
guix
Archived
1
0
Fork 0

guix: dune-build-system: Put dune into a reproducible release mode.

* guix/build/dune-build-system.scm (build,check): Replace the profile parameter
with the appropriate release flags.
* guix/build-system/dune.scm: Remove the profile parameter.
* doc/guix.texi: Remove paragraph on profile parameter.

Signed-off-by: Julien Lepiller <julien@lepiller.eu>
master
pukkamustard 2021-09-07 13:41:12 +02:00 committed by Julien Lepiller
parent 5c5e9d4e50
commit f8f94cc544
No known key found for this signature in database
GPG Key ID: 53D457B2D636EE82
3 changed files with 25 additions and 14 deletions

View File

@ -7735,11 +7735,6 @@ 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}.
The @code{#:profile} parameter can be passed to specify the
@uref{https://dune.readthedocs.io/en/stable/dune-files.html#profile,
dune build profile}. This is equivalent to passing the @code{--profile}
argument to @code{dune}. Its default value is @code{"release"}.
@end defvr
@defvr {Scheme Variable} go-build-system

View File

@ -60,6 +60,17 @@
#:allow-other-keys
#:rest arguments)
"Return a bag for NAME."
;; Flags that put dune into reproducible build mode.
(define dune-release-flags
(if (version>=? (package-version dune) "2.5.0")
;; For dune >= 2.5.0 this is just --release.
''("--release")
;; --release does not exist before 2.5.0. Replace with flags compatible
;; with our old ocaml4.07-dune (1.11.3)
''("--root" "." "--ignore-promoted-rules" "--no-config"
"--profile" "release")))
(define private-keywords
'(#:source #:target #:dune #:findlib #:ocaml #:inputs #:native-inputs))
@ -79,7 +90,9 @@
(build-inputs `(("dune" ,dune)
,@(bag-build-inputs base)))
(build dune-build)
(arguments (strip-keyword-arguments private-keywords arguments))))))
(arguments (append
`(#:dune-release-flags ,dune-release-flags)
(strip-keyword-arguments private-keywords arguments)))))))
(define* (dune-build store name inputs
#:key (guile #f)
@ -89,7 +102,7 @@
(out-of-source? #t)
(jbuild? #f)
(package #f)
(profile "release")
(dune-release-flags ''())
(tests? #t)
(test-flags ''())
(test-target "test")
@ -129,7 +142,7 @@ provides a 'setup.ml' file as its build system."
#:out-of-source? ,out-of-source?
#:jbuild? ,jbuild?
#:package ,package
#:profile ,profile
#:dune-release-flags ,dune-release-flags
#:tests? ,tests?
#:test-target ,test-target
#:install-target ,install-target

View File

@ -32,23 +32,26 @@
;; Code:
(define* (build #:key (build-flags '()) (jbuild? #f)
(use-make? #f) (package #f)
(profile "release") #:allow-other-keys)
(use-make? #f) (package #f) (dune-release-flags '())
#:allow-other-keys)
"Build the given package."
(let ((program (if jbuild? "jbuilder" "dune")))
(apply invoke program "build" "@install"
(append (if package (list "-p" package) '())
`("--profile" ,profile)
(append (if package (list "-p" package)
dune-release-flags)
build-flags)))
#t)
(define* (check #:key (test-flags '()) (test-target "test") tests?
(jbuild? #f) (package #f) #:allow-other-keys)
(jbuild? #f) (package #f) (dune-release-flags '())
#:allow-other-keys)
"Test the given package."
(when tests?
(let ((program (if jbuild? "jbuilder" "dune")))
(apply invoke program "runtest" test-target
(append (if package (list "-p" package) '()) test-flags))))
(append (if package (list "-p" package)
dune-release-flags)
test-flags))))
#t)
(define* (install #:key outputs (install-target "install") (jbuild? #f)