mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
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
2 changed files with 17 additions and 4 deletions
|
@ -45,6 +45,7 @@ (define* (gnu-build store name source inputs
|
|||
#: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 @@ (define builder
|
|||
#: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 @@ (define* (configure #:key outputs (configure-flags '()) #:allow-other-keys)
|
|||
(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 a new issue