summaryrefslogtreecommitdiffstats
path: root/compiler/rustc_codegen_cranelift/build_system/utils.rs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/rustc_codegen_cranelift/build_system/utils.rs')
-rw-r--r--compiler/rustc_codegen_cranelift/build_system/utils.rs51
1 files changed, 17 insertions, 34 deletions
diff --git a/compiler/rustc_codegen_cranelift/build_system/utils.rs b/compiler/rustc_codegen_cranelift/build_system/utils.rs
index abc5bab49..41fc366e2 100644
--- a/compiler/rustc_codegen_cranelift/build_system/utils.rs
+++ b/compiler/rustc_codegen_cranelift/build_system/utils.rs
@@ -5,7 +5,6 @@ use std::path::{Path, PathBuf};
use std::process::{self, Command, Stdio};
use super::path::{Dirs, RelPath};
-use super::rustc_info::{get_cargo_path, get_rustc_path, get_rustdoc_path};
#[derive(Clone, Debug)]
pub(crate) struct Compiler {
@@ -19,18 +18,6 @@ pub(crate) struct Compiler {
}
impl Compiler {
- pub(crate) fn bootstrap_with_triple(triple: String) -> Compiler {
- Compiler {
- cargo: get_cargo_path(),
- rustc: get_rustc_path(),
- rustdoc: get_rustdoc_path(),
- rustflags: String::new(),
- rustdocflags: String::new(),
- triple,
- runner: vec![],
- }
- }
-
pub(crate) fn set_cross_linker_and_runner(&mut self) {
match self.triple.as_str() {
"aarch64-unknown-linux-gnu" => {
@@ -95,7 +82,11 @@ impl CargoProject {
.arg(self.manifest_path(dirs))
.arg("--target-dir")
.arg(self.target_dir(dirs))
- .arg("--frozen");
+ .arg("--locked");
+
+ if dirs.frozen {
+ cmd.arg("--frozen");
+ }
cmd
}
@@ -120,23 +111,6 @@ impl CargoProject {
cmd
}
- #[must_use]
- pub(crate) fn fetch(
- &self,
- cargo: impl AsRef<Path>,
- rustc: impl AsRef<Path>,
- dirs: &Dirs,
- ) -> Command {
- let mut cmd = Command::new(cargo.as_ref());
-
- cmd.env("RUSTC", rustc.as_ref())
- .arg("fetch")
- .arg("--manifest-path")
- .arg(self.manifest_path(dirs));
-
- cmd
- }
-
pub(crate) fn clean(&self, dirs: &Dirs) {
let _ = fs::remove_dir_all(self.target_dir(dirs));
}
@@ -162,8 +136,7 @@ pub(crate) fn hyperfine_command(
warmup: u64,
runs: u64,
prepare: Option<&str>,
- a: &str,
- b: &str,
+ cmds: &[&str],
) -> Command {
let mut bench = Command::new("hyperfine");
@@ -179,7 +152,7 @@ pub(crate) fn hyperfine_command(
bench.arg("--prepare").arg(prepare);
}
- bench.arg(a).arg(b);
+ bench.args(cmds);
bench
}
@@ -285,3 +258,13 @@ pub(crate) fn is_ci() -> bool {
pub(crate) fn is_ci_opt() -> bool {
env::var("CI_OPT").is_ok()
}
+
+pub(crate) fn maybe_incremental(cmd: &mut Command) {
+ if is_ci() || std::env::var("CARGO_BUILD_INCREMENTAL").map_or(false, |val| val == "false") {
+ // Disabling incr comp reduces cache size and incr comp doesn't save as much on CI anyway
+ cmd.env("CARGO_BUILD_INCREMENTAL", "false");
+ } else {
+ // Force incr comp even in release mode unless in CI or incremental builds are explicitly disabled
+ cmd.env("CARGO_BUILD_INCREMENTAL", "true");
+ }
+}