diff options
author | Ludovic Courtès <ludo@gnu.org> | 2021-10-12 23:47:59 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2021-10-13 11:48:02 +0200 |
commit | abd38dcee16f0ac71191527c38dcd3659111e2ba (patch) | |
tree | 9ad0a1f2a1c6c993b2157737c8943818d529c901 | |
parent | 8bc5f63c456502ed80af99933a02642da9cf547a (diff) | |
download | guix-abd38dcee16f0ac71191527c38dcd3659111e2ba.tar.gz |
self: Move core (guix script ...) modules to a separate derivation.
This adds an opportunity for parallelism and reduces the amount of rebuild needed when "secondary" modules are modified. * guix/self.scm (compiled-guix)[*core-cli-modules*]: New variable. [*cli-modules*]: Depend on it. [built-modules]: Likewise.
-rw-r--r-- | guix/self.scm | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/guix/self.scm b/guix/self.scm index 61ff423086..a0d448742a 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -968,13 +968,32 @@ itself." #:extensions dependencies #:guile-for-build guile-for-build)) + (define *core-cli-modules* + ;; Core command-line interface modules that do not depend on (gnu system + ;; …) or (gnu home …), and not even on *PACKAGE-MODULES*. + (scheme-node "guix-cli-core" + (remove (match-lambda + (('guix 'scripts 'system . _) #t) + (('guix 'scripts 'environment) #t) + (('guix 'scripts 'container . _) #t) + (('guix 'scripts 'deploy) #t) + (('guix 'scripts 'home . _) #t) + (('guix 'scripts 'import . _) #t) + (('guix 'pack) #t) + (_ #f)) + (scheme-modules* source "guix/scripts")) + (list *core-modules* *extra-modules* + *core-package-modules*) + #:extensions dependencies + #:guile-for-build guile-for-build)) + (define *cli-modules* (scheme-node "guix-cli" (append (scheme-modules* source "/guix/scripts") `((gnu ci))) (list *core-modules* *extra-modules* *core-package-modules* *package-modules* - *system-modules* *home-modules*) + *core-cli-modules* *system-modules* *home-modules*) #:extensions dependencies #:guile-for-build guile-for-build)) @@ -1020,6 +1039,7 @@ itself." ;; comes with *CORE-MODULES*. (list *config* *cli-modules* + *core-cli-modules* *system-test-modules* *system-modules* *home-modules* |