Auto merge of #12829 - Nilstrieb:verbosebuildrs, r=weihanglo

Print environment variables for build script executions with `-vv`

### What does this PR try to resolve?

When debugging complicated builds (I was trying to figure out how  `cargo-miri` cross-compiles compiler_builtins without needing a C cross compiler), it's useful to see all the environment variables passed to the build script.

This is also consistent with other commands.

### How should we test and review this PR?

I tested it locally by creating a small crate with an empty `build.rs` and building it. Additionally, a test is included.
This commit is contained in:
bors 2023-10-18 02:52:14 +00:00
commit a275529de2
2 changed files with 20 additions and 0 deletions

View File

@ -353,6 +353,10 @@ fn build_work(cx: &mut Context<'_, '_>, unit: &Unit) -> CargoResult<Job> {
);
cmd.env_remove("RUSTFLAGS");
if cx.bcx.ws.config().extra_verbose() {
cmd.display_env_vars();
}
// Gather the set of native dependencies that this package has along with
// some other variables to close over.
//

View File

@ -180,6 +180,22 @@ fn rustc_bootstrap() {
.run();
}
#[cargo_test]
fn build_script_env_verbose() {
let build_rs = r#"
fn main() {}
"#;
let p = project()
.file("Cargo.toml", &basic_manifest("verbose-build", "0.0.1"))
.file("src/lib.rs", "")
.file("build.rs", build_rs)
.build();
p.cargo("check -vv")
.with_stderr_contains("[RUNNING] `[..]CARGO=[..]build-script-build`")
.run();
}
#[cargo_test]
#[cfg(target_arch = "x86_64")]
fn build_script_sees_cfg_target_feature() {