diff --git a/eyre/build.rs b/eyre/build.rs index ab36c2a..d083edd 100644 --- a/eyre/build.rs +++ b/eyre/build.rs @@ -69,16 +69,16 @@ fn compile_probe(probe: &str) -> Option { let probefile = Path::new(&out_dir).join("probe.rs"); fs::write(&probefile, probe).ok()?; - // Supports invoking rustc thrugh a wrapper - let mut cmd = if let Some(wrapper) = env::var_os("RUSTC_WRAPPER") { - let mut cmd = Command::new(wrapper); - - cmd.arg(rustc); - - cmd - } else { - Command::new(rustc) - }; + let rustc_wrapper = env::var_os("RUSTC_WRAPPER").filter(|wrapper| !wrapper.is_empty()); + let rustc_workspace_wrapper = + env::var_os("RUSTC_WORKSPACE_WRAPPER").filter(|wrapper| !wrapper.is_empty()); + let mut rustc = rustc_wrapper + .into_iter() + .chain(rustc_workspace_wrapper) + .chain(std::iter::once(rustc)); + + let mut cmd = Command::new(rustc.next().unwrap()); + cmd.args(rustc); if let Some(target) = env::var_os("TARGET") { cmd.arg("--target").arg(target);