Skip to content

Commit d67f485

Browse files
committed
apply the environment to the version query
1 parent f372dee commit d67f485

File tree

3 files changed

+7
-7
lines changed

3 files changed

+7
-7
lines changed

src/cargo/core/compiler/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1907,7 +1907,7 @@ fn descriptive_pkg_name(name: &str, target: &Target, mode: &CompileMode) -> Stri
19071907
}
19081908

19091909
/// Applies environment variables from config `[env]` to [`ProcessBuilder`].
1910-
fn apply_env_config(gctx: &crate::GlobalContext, cmd: &mut ProcessBuilder) -> CargoResult<()> {
1910+
pub(crate) fn apply_env_config(gctx: &crate::GlobalContext, cmd: &mut ProcessBuilder) -> CargoResult<()> {
19111911
for (key, value) in gctx.env_config()?.iter() {
19121912
// never override a value that has already been set by cargo
19131913
if cmd.get_envs().contains_key(key) {

src/cargo/util/rustc.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ use cargo_util::{paths, ProcessBuilder, ProcessError};
99
use serde::{Deserialize, Serialize};
1010
use tracing::{debug, info, warn};
1111

12+
use crate::core::compiler::apply_env_config;
1213
use crate::util::interning::InternedString;
1314
use crate::util::{CargoResult, GlobalContext, StableHasher};
1415

@@ -60,6 +61,7 @@ impl Rustc {
6061
let mut cmd = ProcessBuilder::new(&path)
6162
.wrapped(workspace_wrapper.as_ref())
6263
.wrapped(wrapper.as_deref());
64+
apply_env_config(gctx, &mut cmd)?;
6365
cmd.arg("-vV");
6466
let verbose_version = cache.cached_output(&cmd, 0)?.0;
6567

tests/testsuite/cargo_env_config.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -193,12 +193,10 @@ fn env_applied_to_target_info_discovery_rustc() {
193193
r#"
194194
fn main() {
195195
let mut cmd = std::env::args().skip(1).collect::<Vec<_>>();
196-
if cmd.get(1).map(|s| &**s) == Some("-vV") {
197-
// This is the version query, not the target info query, so skip this.
198-
} else {
199-
let env_test = std::env::var("ENV_TEST").unwrap();
200-
eprintln!("WRAPPER ENV_TEST:{env_test}");
201-
}
196+
// This will be invoked twice (with `-vV` and with all the `--print`),
197+
// make sure the environment variable exists each time.
198+
let env_test = std::env::var("ENV_TEST").unwrap();
199+
eprintln!("WRAPPER ENV_TEST:{env_test}");
202200
let (prog, args) = cmd.split_first().unwrap();
203201
let status = std::process::Command::new(prog)
204202
.args(args).status().unwrap();

0 commit comments

Comments
 (0)