diff options
author | Ludovic Courtès <ludo@gnu.org> | 2013-07-16 13:42:34 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2013-07-16 13:42:34 +0200 |
commit | 77bed84246b82c933e76e34bbdae59982097f7c8 (patch) | |
tree | 925373e90b8b8e569773cc8b43c769e8a4d04635 | |
parent | 195e81aa5260bab340cbafe42bc3192b23d38505 (diff) |
hydra: Build for all the specified systems.
* build-aux/hydra/gnu-system.scm (hydra-jobs): Pick all the `system'
keys in ARGUMENTS.
[cross-jobs]: Turn into a procedure, with a `system' parameter.
Build packages for all of SYSTEMS and %CROSS-TARGETS.
-rw-r--r-- | build-aux/hydra/gnu-system.scm | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm index 6518f2b4aa..16fa4941c1 100644 --- a/build-aux/hydra/gnu-system.scm +++ b/build-aux/hydra/gnu-system.scm @@ -95,14 +95,21 @@ SYSTEM." (define (hydra-jobs store arguments) "Return Hydra jobs." - (define system - (or (assoc-ref arguments 'system) - (%current-system))) + (define systems + (match (filter-map (match-lambda + (('system . value) + value) + (_ #f)) + arguments) + ((lst ..1) + lst) + (_ + (list (%current-system))))) (define job-name (compose string->symbol package-full-name)) - (define cross-jobs + (define (cross-jobs system) (append-map (lambda (target) (map (lambda (package) (package-cross-job store (job-name package) @@ -119,10 +126,12 @@ SYSTEM." (((_ inputs _ ...) ...) inputs)))) %final-inputs)))) - (fold-packages (lambda (package result) - (if (member package base-packages) - result - (cons (package-job store (job-name package) - package system) - result))) - cross-jobs))) + (append-map (lambda (system) + (fold-packages (lambda (package result) + (if (member package base-packages) + result + (append (package-job store (job-name package) + package system) + result))) + (cross-jobs system))) + systems))) |