diff --git a/lang/rust/src/cargo.sld b/lang/rust/src/cargo.sld index a79e85f..00d28b8 100644 --- a/lang/rust/src/cargo.sld +++ b/lang/rust/src/cargo.sld @@ -273,7 +273,7 @@ (define object-internals (vector->list object)) (unless (or (eq? base-type 'lib) (assoc "name" object-internals)) (error "cargo target has no name")) - (define name (or (and-cdr (assoc "name" object-internals)) (cratify-name crate-name))) + (define name (cratify-name (or (and-cdr (assoc "name" object-internals)) crate-name))) (define path (or (and-cdr (assoc "path" object-internals)) (case base-type ((lib) "src/lib.rs") @@ -345,18 +345,20 @@ (define other-targets '()) (when (and vfs (vfs-file-ref vfs "src" "main.rs")) (set! other-targets (cons (cargo-target-from-toml (vector (cons "name" package-name) (cons "path" "src/main.rs")) package-name 'bin package-edition) other-targets))) - + (define build-file-path (and-cdr (assoc "build" package))) + (when (and vfs (vfs-file-ref vfs "" "build.rs"))) + (set! build-file-path "build.rs")) (define build-script-target #f) (when build-file-path - (set! build-script-target (make-cargo-target (cratify-name (string-append package-name "_buildscript")) build-file-path #f #f #f #f #f #f "2021" 'bin '("default")))) + (set! build-script-target (make-cargo-target (cratify-name (string-append package-name "_buildscript")) build-file-path #f #f #f #f #f #f package-edition 'bin '("default")))) (define dependencies (map (lambda (kv) (cargo-dependency-from-toml (car kv) (if (string? (cdr kv)) (vector (cons "version" (cdr kv))) (cdr kv)) workspace)) (vector->list (or (and-cdr (assoc "dependencies" internals)) #())))) - + ;; TODO(puck): target.{matching cfg}.build-dependencies??? (define build-dependencies (map