[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
30/409: build-system: cargo: Use platform-rust-target.
From: |
guix-commits |
Subject: |
30/409: build-system: cargo: Use platform-rust-target. |
Date: |
Thu, 19 Dec 2024 02:21:33 -0500 (EST) |
efraim pushed a commit to branch rust-team
in repository guix.
commit 4198383fdd9c644ef68cdf0dbb3079cc1d48163d
Author: Efraim Flashner <efraim@flashner.co.il>
AuthorDate: Mon Dec 2 21:19:06 2024 +0200
build-system: cargo: Use platform-rust-target.
* guix/build-system/cargo.scm (cargo-triplet): New procedure.
(cargo-build, cargo-cross-build): Add cargo-target.
(lower): Add cargo-target as private keyword.
* guix/build/cargo-build-system.scm (configure): Use cargo-target to set
CARGO_BUILD_TARGET.
Change-Id: I476fa195dce0e9d20d59dda7dd15f050a56a15cb
---
guix/build-system/cargo.scm | 13 +++++++++++--
guix/build/cargo-build-system.scm | 20 ++------------------
2 files changed, 13 insertions(+), 20 deletions(-)
diff --git a/guix/build-system/cargo.scm b/guix/build-system/cargo.scm
index 0e9a4b1d23..4d4740300d 100644
--- a/guix/build-system/cargo.scm
+++ b/guix/build-system/cargo.scm
@@ -5,7 +5,7 @@
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
-;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2021, 2024 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -29,6 +29,7 @@
#:use-module (guix gexp)
#:use-module (guix monads)
#:use-module (guix packages)
+ #:use-module (guix platform)
#:use-module (guix build-system)
#:use-module (guix build-system gnu)
#:use-module (ice-9 match)
@@ -67,6 +68,11 @@ to NAME and VERSION."
(let ((module (resolve-interface '(gnu packages rust))))
(module-ref module 'make-rust-sysroot)))
+(define (cargo-triplet target)
+ (false-if-exception
+ (platform-rust-target
+ (lookup-platform-by-target-or-system target))))
+
(define %cargo-utils-modules
;; Build-side modules imported by default.
`((guix build cargo-utils)
@@ -113,6 +119,7 @@ to NAME and VERSION."
#:cargo-build-flags #$(sexp->gexp cargo-build-flags)
#:cargo-test-flags #$(sexp->gexp cargo-test-flags)
#:cargo-package-flags #$(sexp->gexp cargo-package-flags)
+ #:cargo-target #$(cargo-triplet system)
#:features #$(sexp->gexp features)
#:skip-build? #$skip-build?
#:install-source? #$install-source?
@@ -142,6 +149,7 @@ to NAME and VERSION."
(cargo-build-flags ''("--release"))
(cargo-test-flags ''("--release"))
(cargo-package-flags ''("--no-metadata"
"--no-verify"))
+ (cargo-target (cargo-triplet (or target system)))
(features ''())
(skip-build? #f)
(install-source? (not (target-mingw? target)))
@@ -170,6 +178,7 @@ to NAME and VERSION."
#:cargo-build-flags #$(sexp->gexp cargo-build-flags)
#:cargo-test-flags #$(sexp->gexp cargo-test-flags)
#:cargo-package-flags #$(sexp->gexp cargo-package-flags)
+ #:cargo-target #$(cargo-triplet (or target system))
#:features #$(sexp->gexp features)
#:skip-build? #$skip-build?
#:install-source? #$install-source?
@@ -313,7 +322,7 @@ any dependent crates. This can be a benefits:
(define private-keywords
`(#:rust #:inputs #:native-inputs #:outputs
#:cargo-inputs #:cargo-development-inputs
- #:rust-sysroot
+ #:rust-sysroot #:cargo-target
,@(if target '() '(#:target))))
(bag
diff --git a/guix/build/cargo-build-system.scm
b/guix/build/cargo-build-system.scm
index 8dcbd461a8..132a811f49 100644
--- a/guix/build/cargo-build-system.scm
+++ b/guix/build/cargo-build-system.scm
@@ -120,6 +120,7 @@ libraries or executables."
(define* (configure #:key inputs
target system
+ cargo-target
(vendor-dir "guix-vendor")
#:allow-other-keys)
"Vendor Cargo.toml dependencies as guix inputs."
@@ -149,24 +150,7 @@ libraries or executables."
;; For cross-building
(when target
- (setenv "CARGO_BUILD_TARGET"
- ;; Can this be replaced with platform-rust-architecture?
- ;; Keep this synchronized with (guix platforms *)
- (match target
- ("aarch64-linux-gnu" "aarch64-unknown-linux-gnu")
- ("arm-linux-gnueabihf" "armv7-unknown-linux-gnueabihf")
- ("i686-linux-gnu" "i686-unknown-linux-gnu")
- ("mips64el-linux-gnu" "mips64el-unknown-linux-gnuabi64")
- ("powerpc-linux-gnu" "powerpc-unknown-linux-gnu")
- ("powerpc64-linux-gnu" "powerpc64-unknown-linux-gnu")
- ("powerpc64le-linux-gnu" "powerpc64le-unknown-linux-gnu")
- ("riscv64-linux-gnu" "riscv64gc-unknown-linux-gnu")
- ("x86_64-linux-gnu" "x86_64-unknown-linux-gnu")
- ("x86_64-linux-gnux32" "x86_64-unknown-linux-gnux32")
- ("i586-pc-gnu" "i686-unknown-hurd-gnu")
- ("i686-w64-mingw32" "i686-pc-windows-gnu")
- ("x86_64-w64-mingw32" "x86_64-pc-windows-gnu")
- (else #f)))
+ (setenv "CARGO_BUILD_TARGET" cargo-target)
(setenv "RUSTFLAGS" (string-append
(or (getenv "RUSTFLAGS") "")
" --sysroot " (assoc-ref inputs "rust-sysroot")))
- 156/409: gnu: rust-stream-cipher-0.3: Update to 0.3.2., (continued)
- 156/409: gnu: rust-stream-cipher-0.3: Update to 0.3.2., guix-commits, 2024/12/19
- 158/409: gnu: rust-sha1collisiondetection-0.2: Update to 0.2.7., guix-commits, 2024/12/19
- 169/409: gnu: rust-secp256k1-0.21: Update to 0.21.3., guix-commits, 2024/12/19
- 161/409: gnu: rust-streebog-0.10: Update to 0.10.2., guix-commits, 2024/12/19
- 171/409: gnu: rust-orion-0.17: Update to 0.17.7., guix-commits, 2024/12/19
- 178/409: gnu: rust-fiat-crypto-0.2: Update to 0.2.9., guix-commits, 2024/12/19
- 187/409: gnu: rust-argon2-0.5: Update to 0.5.3., guix-commits, 2024/12/19
- 180/409: gnu: rust-curve25519-dalek-3: Update to 3.2.1., guix-commits, 2024/12/19
- 198/409: gnu: rust-rustls-0.22: Update to 0.22.4., guix-commits, 2024/12/19
- 219/409: gnu: Add rust-quick-xml-0.37., guix-commits, 2024/12/19
- 30/409: build-system: cargo: Use platform-rust-target.,
guix-commits <=
- 91/409: gnu: Add rust-auto-enums-0.8., guix-commits, 2024/12/19
- 139/409: gnu: Add rust-two-face-0.4., guix-commits, 2024/12/19
- 170/409: gnu: rust-polyval-0.6: Update to 0.6.2., guix-commits, 2024/12/19
- 07/409: gnu: rust-gix-date-0.9: Update to 0.9.1., guix-commits, 2024/12/19
- 09/409: gnu: rust-gix-prompt-0.8: Update to 0.8.8., guix-commits, 2024/12/19
- 72/409: gnu: Add rust-libtest-mimic-0.4., guix-commits, 2024/12/19
- 76/409: gnu: rust-mockall-double-0.3: Update to 0.3.1., guix-commits, 2024/12/19
- 77/409: gnu: rust-trybuild-1: Update to 1.0.101., guix-commits, 2024/12/19
- 85/409: gnu: Add rust-windows-core-0.56., guix-commits, 2024/12/19
- 84/409: gnu: Add rust-windows-version-0.1., guix-commits, 2024/12/19