build-system/gnu: Support parallel builds and tests.
* guix/build/gnu-build-system.scm (build): Add `parallel-build?' parameter; honor it and $NIX_BUILD_CORES. (check): Add `parallel-tests?' parameter; likewise. * guix/build-system/gnu.scm (gnu-build): Add `parallel-build?' and `parallel-tests?' parameters. [builder]: Inherit them.
This commit is contained in:
parent
10c87717bd
commit
febaa88569
|
@ -45,6 +45,7 @@
|
|||
#:key (outputs '("out")) (configure-flags ''())
|
||||
(make-flags ''())
|
||||
(patches ''()) (patch-flags ''("--batch" "-p1"))
|
||||
(parallel-build? #t) (parallel-tests? #t)
|
||||
(phases '%standard-phases)
|
||||
(system (%current-system))
|
||||
(modules '((guix build gnu-build-system)
|
||||
|
@ -63,7 +64,9 @@ input derivation INPUTS, using the usual procedure of the GNU Build System."
|
|||
#:patch-flags ,patch-flags
|
||||
#:phases ,phases
|
||||
#:configure-flags ,configure-flags
|
||||
#:make-flags ,make-flags)))
|
||||
#:make-flags ,make-flags
|
||||
#:parallel-build? ,parallel-build?
|
||||
#:parallel-tests? ,parallel-tests?)))
|
||||
|
||||
(build-expression->derivation store name system
|
||||
builder
|
||||
|
|
|
@ -87,13 +87,23 @@
|
|||
(format #t "configure flags: ~s~%" flags)
|
||||
(zero? (apply system* "./configure" flags))))
|
||||
|
||||
(define* (build #:key (make-flags '()) #:allow-other-keys)
|
||||
(zero? (apply system* "make" make-flags)))
|
||||
(define* (build #:key (make-flags '()) (parallel-build? #t)
|
||||
#:allow-other-keys)
|
||||
(zero? (apply system* "make"
|
||||
`(,@(if parallel-build?
|
||||
`("-j" ,(getenv "NIX_BUILD_CORES"))
|
||||
'())
|
||||
,@make-flags))))
|
||||
|
||||
(define* (check #:key (make-flags '()) (tests? #t) (test-target "check")
|
||||
(parallel-tests? #t)
|
||||
#:allow-other-keys)
|
||||
(if tests?
|
||||
(zero? (apply system* "make" test-target make-flags))
|
||||
(zero? (apply system* "make" test-target
|
||||
`(,@(if parallel-tests?
|
||||
`("-j" ,(getenv "NIX_BUILD_CORES"))
|
||||
'())
|
||||
,@make-flags)))
|
||||
(begin
|
||||
(format #t "test suite not run~%")
|
||||
#t)))
|
||||
|
|
Loading…
Reference in New Issue