Pass cargo.target to rustc

This commit is contained in:
Christophe MASSOLIN 2020-05-05 18:15:13 +02:00
parent 0ab4340cdb
commit 14dde99627
3 changed files with 15 additions and 7 deletions

View file

@ -543,7 +543,7 @@ impl ProjectWorkspace {
}
}
pub fn get_rustc_cfg_options() -> CfgOptions {
pub fn get_rustc_cfg_options(target: Option<&String>) -> CfgOptions {
let mut cfg_options = CfgOptions::default();
// Some nightly-only cfgs, which are required for stdlib
@ -558,10 +558,18 @@ pub fn get_rustc_cfg_options() -> CfgOptions {
match (|| -> Result<String> {
// `cfg(test)` and `cfg(debug_assertion)` are handled outside, so we suppress them here.
let output = Command::new("rustc")
.args(&["--print", "cfg", "-O"])
.output()
.context("Failed to get output from rustc --print cfg -O")?;
let output = if let Some(target) = target {
Command::new("rustc")
.args(&["--print", "cfg", "-O", "--target", target.as_str()])
.output()
.context("Failed to get output from rustc --print cfg -O")?
} else {
Command::new("rustc")
.args(&["--print", "cfg", "-O"])
.output()
.context("Failed to get output from rustc --print cfg -O")?
};
if !output.status.success() {
bail!(
"rustc --print cfg -O exited with exit code ({})",