2 use std::path::{Path, PathBuf};
3 use std::process::Command;
5 pub(crate) fn build_backend(channel: &str, host_triple: &str) -> PathBuf {
6 let mut cmd = Command::new("cargo");
7 cmd.arg("build").arg("--target").arg(host_triple).arg("--features").arg("unstable-features");
18 if cfg!(target_os = "macos") {
21 "-Csplit-debuginfo=unpacked \
22 -Clink-arg=-Wl,-rpath,@loader_path/../lib \
23 -Zosx-rpath-install-name"
25 + env::var("RUSTFLAGS").as_deref().unwrap_or(""),
30 "-Clink-arg=-Wl,-rpath=$ORIGIN/../lib ".to_string()
31 + env::var("RUSTFLAGS").as_deref().unwrap_or(""),
36 eprintln!("[BUILD] rustc_codegen_cranelift");
37 crate::utils::spawn_and_wait(cmd);
39 Path::new("target").join(host_triple).join(channel)