mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 08:13:41 +00:00
merge if-available
and if-unchanged
for download-ci-llvm
Signed-off-by: onur-ozkan <work@onurozkan.dev>
This commit is contained in:
parent
d8dbf7ca0e
commit
23446427fe
@ -42,18 +42,15 @@ change-id = 116881
|
|||||||
# Unless you're developing for a target where Rust CI doesn't build a compiler
|
# Unless you're developing for a target where Rust CI doesn't build a compiler
|
||||||
# toolchain or changing LLVM locally, you probably want to leave this enabled.
|
# toolchain or changing LLVM locally, you probably want to leave this enabled.
|
||||||
#
|
#
|
||||||
# Set this to `"if-available"` if you are not sure whether you're on a tier 1
|
# Set this to `"if-unchanged"` to download only if the llvm-project has not
|
||||||
# target. All tier 1 targets are currently supported;
|
# been modified. You can also use this if you are unsure whether you're on a
|
||||||
#
|
# tier 1 target. All tier 1 targets are currently supported.
|
||||||
# We also currently only support this when building LLVM for the build triple.
|
|
||||||
#
|
# Currently, we only support this when building LLVM for the build triple.
|
||||||
# Set this to `"if-unchanged"` to only download if the llvm-project have not
|
|
||||||
# been modified. (If there are no changes or if built from tarball source,
|
|
||||||
# the logic is the same as "if-available")
|
|
||||||
#
|
#
|
||||||
# Note that many of the LLVM options are not currently supported for
|
# Note that many of the LLVM options are not currently supported for
|
||||||
# downloading. Currently only the "assertions" option can be toggled.
|
# downloading. Currently only the "assertions" option can be toggled.
|
||||||
#download-ci-llvm = if rust.channel == "dev" { "if-available" } else { false }
|
#download-ci-llvm = if rust.channel == "dev" { "if-unchanged" } else { false }
|
||||||
|
|
||||||
# Indicates whether the LLVM build is a Release or Debug build
|
# Indicates whether the LLVM build is a Release or Debug build
|
||||||
#optimize = true
|
#optimize = true
|
||||||
|
@ -17,4 +17,4 @@ lto = "off"
|
|||||||
|
|
||||||
[llvm]
|
[llvm]
|
||||||
# Will download LLVM from CI if available on your platform.
|
# Will download LLVM from CI if available on your platform.
|
||||||
download-ci-llvm = "if-available"
|
download-ci-llvm = "if-unchanged"
|
||||||
|
@ -13,4 +13,4 @@ lto = "off"
|
|||||||
|
|
||||||
[llvm]
|
[llvm]
|
||||||
# Will download LLVM from CI if available on your platform.
|
# Will download LLVM from CI if available on your platform.
|
||||||
download-ci-llvm = "if-available"
|
download-ci-llvm = "if-unchanged"
|
||||||
|
@ -21,4 +21,4 @@ compiler-docs = true
|
|||||||
|
|
||||||
[llvm]
|
[llvm]
|
||||||
# Will download LLVM from CI if available on your platform.
|
# Will download LLVM from CI if available on your platform.
|
||||||
download-ci-llvm = "if-available"
|
download-ci-llvm = "if-unchanged"
|
||||||
|
@ -2104,6 +2104,8 @@ impl Config {
|
|||||||
match download_ci_llvm {
|
match download_ci_llvm {
|
||||||
None => self.channel == "dev" && llvm::is_ci_llvm_available(&self, asserts),
|
None => self.channel == "dev" && llvm::is_ci_llvm_available(&self, asserts),
|
||||||
Some(StringOrBool::Bool(b)) => b,
|
Some(StringOrBool::Bool(b)) => b,
|
||||||
|
// FIXME: "if-available" is deprecated. Remove this block later (around mid 2024)
|
||||||
|
// to not break builds between the recent-to-old checkouts.
|
||||||
Some(StringOrBool::String(s)) if s == "if-available" => {
|
Some(StringOrBool::String(s)) if s == "if-available" => {
|
||||||
llvm::is_ci_llvm_available(&self, asserts)
|
llvm::is_ci_llvm_available(&self, asserts)
|
||||||
}
|
}
|
||||||
|
@ -24,19 +24,19 @@ fn download_ci_llvm() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let parse_llvm = |s| parse(s).llvm_from_ci;
|
let parse_llvm = |s| parse(s).llvm_from_ci;
|
||||||
let if_available = parse_llvm("llvm.download-ci-llvm = \"if-available\"");
|
let if_unchanged = parse_llvm("llvm.download-ci-llvm = \"if-unchanged\"");
|
||||||
|
|
||||||
assert!(parse_llvm("llvm.download-ci-llvm = true"));
|
assert!(parse_llvm("llvm.download-ci-llvm = true"));
|
||||||
assert!(!parse_llvm("llvm.download-ci-llvm = false"));
|
assert!(!parse_llvm("llvm.download-ci-llvm = false"));
|
||||||
assert_eq!(parse_llvm(""), if_available);
|
assert_eq!(parse_llvm(""), if_unchanged);
|
||||||
assert_eq!(parse_llvm("rust.channel = \"dev\""), if_available);
|
assert_eq!(parse_llvm("rust.channel = \"dev\""), if_unchanged);
|
||||||
assert!(!parse_llvm("rust.channel = \"stable\""));
|
assert!(!parse_llvm("rust.channel = \"stable\""));
|
||||||
assert!(parse_llvm("build.build = \"x86_64-unknown-linux-gnu\""));
|
assert!(parse_llvm("build.build = \"x86_64-unknown-linux-gnu\""));
|
||||||
assert!(parse_llvm(
|
assert!(parse_llvm(
|
||||||
"llvm.assertions = true \r\n build.build = \"x86_64-unknown-linux-gnu\" \r\n llvm.download-ci-llvm = \"if-available\""
|
"llvm.assertions = true \r\n build.build = \"x86_64-unknown-linux-gnu\" \r\n llvm.download-ci-llvm = \"if-unchanged\""
|
||||||
));
|
));
|
||||||
assert!(!parse_llvm(
|
assert!(!parse_llvm(
|
||||||
"llvm.assertions = true \r\n build.build = \"aarch64-apple-darwin\" \r\n llvm.download-ci-llvm = \"if-available\""
|
"llvm.assertions = true \r\n build.build = \"aarch64-apple-darwin\" \r\n llvm.download-ci-llvm = \"if-unchanged\""
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -145,7 +145,7 @@ else
|
|||||||
# LLVM continuously on at least some builders to ensure it works, though.
|
# LLVM continuously on at least some builders to ensure it works, though.
|
||||||
# (And PGO is its own can of worms).
|
# (And PGO is its own can of worms).
|
||||||
if [ "$NO_DOWNLOAD_CI_LLVM" = "" ]; then
|
if [ "$NO_DOWNLOAD_CI_LLVM" = "" ]; then
|
||||||
RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --set llvm.download-ci-llvm=if-available"
|
RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --set llvm.download-ci-llvm=if-unchanged"
|
||||||
else
|
else
|
||||||
# When building for CI we want to use the static C++ Standard library
|
# When building for CI we want to use the static C++ Standard library
|
||||||
# included with LLVM, since a dynamic libstdcpp may not be available.
|
# included with LLVM, since a dynamic libstdcpp may not be available.
|
||||||
|
@ -58,7 +58,7 @@ elif isWindows && [[ ${CUSTOM_MINGW-0} -ne 1 ]]; then
|
|||||||
"${RUST_CONFIGURE_ARGS} --set llvm.clang-cl=$(pwd)/clang-rust/bin/clang-cl.exe"
|
"${RUST_CONFIGURE_ARGS} --set llvm.clang-cl=$(pwd)/clang-rust/bin/clang-cl.exe"
|
||||||
|
|
||||||
# Disable downloading CI LLVM on this builder;
|
# Disable downloading CI LLVM on this builder;
|
||||||
# setting up clang-cl just above conflicts with the default if-available option.
|
# setting up clang-cl just above conflicts with the default if-unchanged option.
|
||||||
ciCommandSetEnv NO_DOWNLOAD_CI_LLVM 1
|
ciCommandSetEnv NO_DOWNLOAD_CI_LLVM 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user