From f1d136957d0d5634e60e5389a046a917169cdb9e Mon Sep 17 00:00:00 2001 From: David Craven Date: Thu, 29 Dec 2016 16:29:24 +0100 Subject: build-system: cargo: Handle Cargo.lock file not present. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/build-system/cargo.scm (cargo-build): Add src output. (private-keywords): Add #:outputs. * guix/build/cargo-build-system.scm (configure): Use /share/rust-source when replacing inputs. (build, check): Don't do anything when there isn't a Cargo.lock file present. (install): Install sources to src output. When a Cargo.lock file is present use cargo install to install binaries to out. * guix/import/crate.scm (make-crate-sexp): Importer uses the src output for crate inputs by default. * guix/import/utils.scm (package-names->package-inputs, maybe-inputs, maybe-native-inputs): Take an optional output argument. * tests/crate.scm (crate->guix-package test): Update. Problem reported by Francisco Gómez García . --- guix/import/crate.scm | 4 ++-- guix/import/utils.scm | 14 ++++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) (limited to 'guix/import') diff --git a/guix/import/crate.scm b/guix/import/crate.scm index 33cc6104c5..233a20e983 100644 --- a/guix/import/crate.scm +++ b/guix/import/crate.scm @@ -97,8 +97,8 @@ VERSION, INPUTS, NATIVE-INPUTS, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE." (base32 ,(bytevector->nix-base32-string (port-sha256 port)))))) (build-system cargo-build-system) - ,@(maybe-native-inputs native-inputs) - ,@(maybe-inputs inputs) + ,@(maybe-native-inputs native-inputs "src") + ,@(maybe-inputs inputs "src") (home-page ,(match home-page (() "") (_ home-page))) diff --git a/guix/import/utils.scm b/guix/import/utils.scm index f304da20e6..be1980d08f 100644 --- a/guix/import/utils.scm +++ b/guix/import/utils.scm @@ -211,24 +211,26 @@ into a proper sentence and by using two spaces between sentences." (regexp-substitute/global #f "\\. \\b" cleaned 'pre ". " 'post))) -(define (package-names->package-inputs names) +(define* (package-names->package-inputs names #:optional (output #f)) (map (lambda (input) - (list input (list 'unquote (string->symbol input)))) + (cons* input (list 'unquote (string->symbol input)) + (or (and output (list output)) + '()))) names)) -(define (maybe-inputs package-names) +(define* (maybe-inputs package-names #:optional (output #f)) "Given a list of PACKAGE-NAMES, tries to generate the 'inputs' field of a package definition." - (match (package-names->package-inputs package-names) + (match (package-names->package-inputs package-names output) (() '()) ((package-inputs ...) `((inputs (,'quasiquote ,package-inputs)))))) -(define (maybe-native-inputs package-names) +(define* (maybe-native-inputs package-names #:optional (output #f)) "Given a list of PACKAGE-NAMES, tries to generate the 'inputs' field of a package definition." - (match (package-names->package-inputs package-names) + (match (package-names->package-inputs package-names output) (() '()) ((package-inputs ...) -- cgit v1.2.3