aboutsummaryrefslogtreecommitdiff
path: root/guix/import
diff options
context:
space:
mode:
authorDavid Elsing <david.elsing@posteo.net>2023-12-21 22:01:50 +0000
committerEfraim Flashner <efraim@flashner.co.il>2024-01-09 09:38:38 +0200
commit9f44ff2bb47c964d53905cea17c4bda758cce509 (patch)
treef902e562dc7fedb465d4cc3fec710664921450dd /guix/import
parent4b0aa65c0a9301a70c798ea76a493f67ef8371f4 (diff)
downloadguix-9f44ff2bb47c964d53905cea17c4bda758cce509.tar
guix-9f44ff2bb47c964d53905cea17c4bda758cce509.tar.gz
import: crate: Optionally import dev-dependencies recursively.
If --recursive-dev-dependencies is specified, development dependencies are also included for all recursively imported packages. * doc/guix.texi (Invoking guix import): Mention --recursive-dev-dependencies. * guix/import/crate.scm (crate-recursive-import): Add recursive-dev-dependencies? argument. * guix/scripts/import/crate.scm (show-help, guix-import-crate): Add "--recursive-dev-dependencies". * tests/crate.scm: Test both #f and #t for #:recursive-dev-dependencies? in the 'cargo-recursive-import' test. (test-root-dependencies): Add intermediate-c as dev-dependency. (test-intermediate-c-crate, test-intermediate-c-dependencies): New variables. Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Change-Id: Iae89794681155d77f128733120e60f03bc297717
Diffstat (limited to 'guix/import')
-rw-r--r--guix/import/crate.scm7
1 files changed, 5 insertions, 2 deletions
diff --git a/guix/import/crate.scm b/guix/import/crate.scm
index 07874bdb26..db5461312f 100644
--- a/guix/import/crate.scm
+++ b/guix/import/crate.scm
@@ -328,14 +328,17 @@ look up the development dependencs for the given crate."
(append cargo-inputs cargo-development-inputs)))
(values #f '())))
-(define* (crate-recursive-import crate-name #:key version)
+(define* (crate-recursive-import
+ crate-name #:key version recursive-dev-dependencies?)
(recursive-import
crate-name
#:repo->guix-package
(let ((crate->guix-package* (memoize crate->guix-package)))
(lambda* params
;; download development dependencies only for the top level package
- (let ((include-dev-deps? (equal? (car params) crate-name)))
+ (let ((include-dev-deps?
+ (or (equal? (car params) crate-name)
+ recursive-dev-dependencies?)))
(apply crate->guix-package*
(append params `(#:include-dev-deps? ,include-dev-deps?))))))
#:version version