(zilch lang rust): parse workspaces

This commit is contained in:
puck 2024-11-27 14:16:01 +00:00
parent 2f069f2cdd
commit 9f23179d46
3 changed files with 75 additions and 12 deletions

View file

@ -83,7 +83,7 @@
;; Download and activate a dependency from the registry.
(define (resolver-download resolver name version)
(define vfs (force (cddr (mapping-ref (mapping-ref (resolver-locked-dependencies resolver) name) (version-str version)))))
(define parsed-cargo (parse-cargo-toml vfs (call-with-port (store-path-open #~,(string-append #$vfs "/Cargo.toml")) (lambda (p) (read-string 99999999 p)))))
(define-values (parsed-cargo parsed-workspace) (parse-cargo-toml vfs (call-with-port (store-path-open #~,(string-append #$vfs "/Cargo.toml")) (lambda (p) (read-string 99999999 p))) #f))
(unless (cargo-crate-lib-target parsed-cargo)
(error "Crate does not have valid [lib] target" (list name version)))
@ -220,7 +220,7 @@
parsed-lockfile)
(define resolver (make-resolver locked-dependencies (mapping (make-default-comparator))))
(define pkg (resolver-register resolver vfs cargo-file))
(define pkg (resolver-register resolver vfs cargo-file #f))
(resolver-activate-features resolver pkg activated-features)
(resolver-print resolver)
pkg)