mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 15:36:20 -05:00
gnu: Add cargo.
* gnu/packages/rust.scm (cargo): New variable.
This commit is contained in:
parent
2d2388e243
commit
b5a09649db
1 changed files with 57 additions and 0 deletions
|
@ -23,12 +23,17 @@ (define-module (gnu packages rust)
|
|||
#:use-module (gnu packages bootstrap)
|
||||
#:use-module (gnu packages cmake)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages elf)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages jemalloc)
|
||||
#:use-module (gnu packages llvm)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages ssh)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (guix build-system cargo)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix download)
|
||||
|
@ -265,3 +270,55 @@ (define-public rustc
|
|||
(home-page "https://www.rust-lang.org")
|
||||
;; Dual licensed.
|
||||
(license (list license:asl2.0 license:expat))))
|
||||
|
||||
(define-public cargo
|
||||
(package
|
||||
(name "cargo")
|
||||
(version (cargo-version (rustc-version %rust-bootstrap-binaries-version)))
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
;; Use a cargo tarball with vendored dependencies and a cargo
|
||||
;; config file.
|
||||
(uri (string-append
|
||||
"https://github.com/dvc94ch/cargo"
|
||||
"/archive/" version "-cargo-vendor.tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0hpix5hwz10pm1wh65gimhsy9nxjvy7yikgbpw8afwglqr3bl856"))))
|
||||
(build-system cargo-build-system)
|
||||
(propagated-inputs
|
||||
`(("cmake" ,cmake)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("curl" ,curl)
|
||||
("libgit2" ,libgit2)
|
||||
("libssh2" ,libssh2)
|
||||
("openssl" ,openssl)
|
||||
("python-2" ,python-2)
|
||||
("zlib" ,zlib)))
|
||||
(arguments
|
||||
`(#:cargo ,cargo-bootstrap
|
||||
#:tests? #f ; FIXME
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; Avoid cargo complaining about missmatched checksums.
|
||||
(delete 'patch-source-shebangs)
|
||||
(delete 'patch-generated-file-shebangs)
|
||||
(delete 'patch-usr-bin-file)
|
||||
;; Set CARGO_HOME to use the vendored dependencies.
|
||||
(add-after 'unpack 'set-cargo-home
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let* ((gcc (assoc-ref inputs "gcc"))
|
||||
(cc (string-append gcc "/bin/gcc")))
|
||||
(setenv "CARGO_HOME" (string-append (getcwd) "/cargohome"))
|
||||
(setenv "CMAKE_C_COMPILER" cc)
|
||||
(setenv "CC" cc))
|
||||
#t)))))
|
||||
(home-page "https://github.com/rust-lang/cargo")
|
||||
(synopsis "Build tool and package manager for Rust")
|
||||
(description "Cargo is a tool that allows Rust projects to declare their
|
||||
dependencies and ensures a reproducible build.")
|
||||
;; Cargo is dual licensed Apache and MIT. Also contains
|
||||
;; code from openssl which is GPL2 with linking exception.
|
||||
(license (list license:asl2.0 license:expat license:gpl2))))
|
||||
|
|
Loading…
Reference in a new issue