guix build: Add '--max-jobs' option.
Suggested by Deck Pickard <deck.r.pickard@gmail.com>. * guix/scripts/build.scm (show-build-options-help): Document --max-jobs. (set-build-options-from-command-line): Pass #:max-build-jobs. (%standard-build-options): Add --max-jobs. * doc/guix.texi (Invoking guix-daemon): Document the meaning of '--max-jobs 0'. (Invoking guix build): Document --max-jobs, with a reference to "Invoking guix-daemon'.
This commit is contained in:
parent
1b366ee4f6
commit
f6526eb330
|
@ -596,7 +596,9 @@ parallelism---for instance, by running @code{make -j$NIX_BUILD_CORES}.
|
||||||
@item --max-jobs=@var{n}
|
@item --max-jobs=@var{n}
|
||||||
@itemx -M @var{n}
|
@itemx -M @var{n}
|
||||||
Allow at most @var{n} build jobs in parallel. The default value is
|
Allow at most @var{n} build jobs in parallel. The default value is
|
||||||
@code{1}.
|
@code{1}. Setting it to @code{0} means that no builds will be performed
|
||||||
|
locally; instead, the daemon will offload builds (@pxref{Daemon Offload
|
||||||
|
Setup}), or simply fail.
|
||||||
|
|
||||||
@item --debug
|
@item --debug
|
||||||
Produce debugging output.
|
Produce debugging output.
|
||||||
|
@ -2765,6 +2767,12 @@ may be helpful when debugging setup issues with the build daemon.
|
||||||
Allow the use of up to @var{n} CPU cores for the build. The special
|
Allow the use of up to @var{n} CPU cores for the build. The special
|
||||||
value @code{0} means to use as many CPU cores as available.
|
value @code{0} means to use as many CPU cores as available.
|
||||||
|
|
||||||
|
@item --max-jobs=@var{n}
|
||||||
|
@itemx -M @var{n}
|
||||||
|
Allow at most @var{n} build jobs in parallel. @xref{Invoking
|
||||||
|
guix-daemon, @code{--max-jobs}}, for details about this option and the
|
||||||
|
equivalent @command{guix-daemon} option.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
Behind the scenes, @command{guix build} is essentially an interface to
|
Behind the scenes, @command{guix build} is essentially an interface to
|
||||||
|
|
|
@ -119,7 +119,9 @@ options handled by 'set-build-options-from-command-line', and listed in
|
||||||
(display (_ "
|
(display (_ "
|
||||||
--verbosity=LEVEL use the given verbosity LEVEL"))
|
--verbosity=LEVEL use the given verbosity LEVEL"))
|
||||||
(display (_ "
|
(display (_ "
|
||||||
-c, --cores=N allow the use of up to N CPU cores for the build")))
|
-c, --cores=N allow the use of up to N CPU cores for the build"))
|
||||||
|
(display (_ "
|
||||||
|
-M, --max-jobs=N allow at most N build jobs")))
|
||||||
|
|
||||||
(define (set-build-options-from-command-line store opts)
|
(define (set-build-options-from-command-line store opts)
|
||||||
"Given OPTS, an alist as returned by 'args-fold' given
|
"Given OPTS, an alist as returned by 'args-fold' given
|
||||||
|
@ -128,6 +130,7 @@ options handled by 'set-build-options-from-command-line', and listed in
|
||||||
(set-build-options store
|
(set-build-options store
|
||||||
#:keep-failed? (assoc-ref opts 'keep-failed?)
|
#:keep-failed? (assoc-ref opts 'keep-failed?)
|
||||||
#:build-cores (or (assoc-ref opts 'cores) 0)
|
#:build-cores (or (assoc-ref opts 'cores) 0)
|
||||||
|
#:max-build-jobs (or (assoc-ref opts 'max-jobs) 1)
|
||||||
#:fallback? (assoc-ref opts 'fallback?)
|
#:fallback? (assoc-ref opts 'fallback?)
|
||||||
#:use-substitutes? (assoc-ref opts 'substitutes?)
|
#:use-substitutes? (assoc-ref opts 'substitutes?)
|
||||||
#:use-build-hook? (assoc-ref opts 'build-hook?)
|
#:use-build-hook? (assoc-ref opts 'build-hook?)
|
||||||
|
@ -192,7 +195,15 @@ options handled by 'set-build-options-from-command-line', and listed in
|
||||||
(let ((c (false-if-exception (string->number arg))))
|
(let ((c (false-if-exception (string->number arg))))
|
||||||
(if c
|
(if c
|
||||||
(apply values (alist-cons 'cores c result) rest)
|
(apply values (alist-cons 'cores c result) rest)
|
||||||
(leave (_ "~a: not a number~%") arg)))))))
|
(leave (_ "not a number: '~a' option argument: ~a~%")
|
||||||
|
name arg)))))
|
||||||
|
(option '(#\M "max-jobs") #t #f
|
||||||
|
(lambda (opt name arg result . rest)
|
||||||
|
(let ((c (false-if-exception (string->number arg))))
|
||||||
|
(if c
|
||||||
|
(apply values (alist-cons 'max-jobs c result) rest)
|
||||||
|
(leave (_ "not a number: '~a' option argument: ~a~%")
|
||||||
|
name arg)))))))
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
|
|
Loading…
Reference in New Issue