on the fly type casting for build.rustc and build.cargo

Signed-off-by: onur-ozkan <work@onurozkan.dev>
This commit is contained in:
onur-ozkan 2024-02-23 22:41:21 +03:00
parent 21033f637e
commit ea476b1fa1

View File

@ -811,8 +811,8 @@ define_config! {
host: Option<Vec<String>> = "host", host: Option<Vec<String>> = "host",
target: Option<Vec<String>> = "target", target: Option<Vec<String>> = "target",
build_dir: Option<String> = "build-dir", build_dir: Option<String> = "build-dir",
cargo: Option<String> = "cargo", cargo: Option<PathBuf> = "cargo",
rustc: Option<String> = "rustc", rustc: Option<PathBuf> = "rustc",
rustfmt: Option<PathBuf> = "rustfmt", rustfmt: Option<PathBuf> = "rustfmt",
docs: Option<bool> = "docs", docs: Option<bool> = "docs",
compiler_docs: Option<bool> = "compiler-docs", compiler_docs: Option<bool> = "compiler-docs",
@ -1421,7 +1421,7 @@ impl Config {
if !flags.skip_stage0_validation { if !flags.skip_stage0_validation {
config.check_stage0_version(&rustc, "rustc"); config.check_stage0_version(&rustc, "rustc");
} }
PathBuf::from(rustc) rustc
} else { } else {
config.download_beta_toolchain(); config.download_beta_toolchain();
config.out.join(config.build.triple).join("stage0/bin/rustc") config.out.join(config.build.triple).join("stage0/bin/rustc")
@ -1431,7 +1431,7 @@ impl Config {
if !flags.skip_stage0_validation { if !flags.skip_stage0_validation {
config.check_stage0_version(&cargo, "cargo"); config.check_stage0_version(&cargo, "cargo");
} }
PathBuf::from(cargo) cargo
} else { } else {
config.download_beta_toolchain(); config.download_beta_toolchain();
config.out.join(config.build.triple).join("stage0/bin/cargo") config.out.join(config.build.triple).join("stage0/bin/cargo")
@ -2292,7 +2292,7 @@ impl Config {
} }
// check rustc/cargo version is same or lower with 1 apart from the building one // check rustc/cargo version is same or lower with 1 apart from the building one
pub fn check_stage0_version(&self, program_path: &str, component_name: &'static str) { pub fn check_stage0_version(&self, program_path: &Path, component_name: &'static str) {
if self.dry_run() { if self.dry_run() {
return; return;
} }
@ -2303,7 +2303,8 @@ impl Config {
let stage0_name = stage0_output.next().unwrap(); let stage0_name = stage0_output.next().unwrap();
if stage0_name != component_name { if stage0_name != component_name {
fail(&format!( fail(&format!(
"Expected to find {component_name} at {program_path} but it claims to be {stage0_name}" "Expected to find {component_name} at {} but it claims to be {stage0_name}",
program_path.display()
)); ));
} }