51 lines
2.0 KiB
Plaintext
51 lines
2.0 KiB
Plaintext
--- build/config/rust.gni.orig 2026-03-13 16:54:03 UTC
|
|
+++ build/config/rust.gni
|
|
@@ -67,7 +67,8 @@ declare_args() {
|
|
# set this to the output of `rustc -V`. Changing this string will cause all
|
|
# Rust targets to be rebuilt, which allows you to update your toolchain and
|
|
# not break incremental builds.
|
|
- rustc_version = ""
|
|
+ rustc_version = exec_script("//build/gn_run_binary.py",
|
|
+ [ "/usr/local/bin/rustc", "-V" ], "trim string")
|
|
|
|
# Whether artifacts produced by the Rust compiler can participate in ThinLTO.
|
|
#
|
|
@@ -180,6 +181,24 @@ if (enable_rust) {
|
|
} else {
|
|
toolchain_has_rust = custom_toolchain_supports_platform
|
|
rustc_revision = rustc_version
|
|
+ # Example:
|
|
+ # rustc 1.88.0 c8f94230282a8e8c1148f3e657f0199aad909228 (c8f94230282a8e8c1148f3e657f0199aad909228-1-llvmorg-21-init-9266-g09006611 chromium)
|
|
+ # Trim it down as much as we can using GN.
|
|
+ rustc_revision = string_replace(rustc_revision, "rustc ", "")
|
|
+ rustc_revision = string_replace(rustc_revision, " chromium", "")
|
|
+ rustc_revision = string_replace(rustc_revision, "init-", "")
|
|
+ rustc_revision = string_replace(rustc_revision, "llvmorg-", "")
|
|
+ rustc_revision = string_replace(rustc_revision, " ", "")
|
|
+ rustc_revision = string_replace(rustc_revision, ".", "")
|
|
+ rustc_revision = string_replace(rustc_revision, "(", "-")
|
|
+ rustc_revision = string_replace(rustc_revision, ")", "")
|
|
+ rust_revision_pieces = string_split(rustc_version, " ")
|
|
+ rust_version_pieces = string_split(rust_revision_pieces[1], ".")
|
|
+ if (rust_version_pieces[1] == "85") {
|
|
+ rustc_nightly_capability = false
|
|
+ } else {
|
|
+ rustc_nightly_capability = true
|
|
+ }
|
|
}
|
|
}
|
|
|
|
@@ -355,7 +374,11 @@ if (is_linux || is_chromeos) {
|
|
}
|
|
}
|
|
|
|
-if (toolchain_has_rust) {
|
|
+if (is_bsd) {
|
|
+ rust_abi_target = string_replace(rust_abi_target, "linux-gnu", current_os)
|
|
+}
|
|
+
|
|
+if (toolchain_has_rust && !is_bsd) {
|
|
assert(rust_abi_target != "")
|
|
|
|
_known_rust_target_triples_filepath = "//build/rust/known-target-triples.txt"
|