Skip to content

Commit 88797f4

Browse files
committed
Setup cargo environment for cargo rustc --print
1 parent 05f54fd commit 88797f4

File tree

2 files changed

+42
-1
lines changed

2 files changed

+42
-1
lines changed

src/cargo/ops/cargo_compile/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ use std::sync::Arc;
4141

4242
use crate::core::compiler::unit_dependencies::build_unit_dependencies;
4343
use crate::core::compiler::unit_graph::{self, UnitDep, UnitGraph};
44-
use crate::core::compiler::{standard_lib, CrateType, TargetInfo};
44+
use crate::core::compiler::{apply_env_config, standard_lib, CrateType, TargetInfo};
4545
use crate::core::compiler::{BuildConfig, BuildContext, BuildRunner, Compilation};
4646
use crate::core::compiler::{CompileKind, CompileMode, CompileTarget, RustcTargetData, Unit};
4747
use crate::core::compiler::{DefaultExecutor, Executor, UnitInterner};
@@ -188,6 +188,7 @@ pub fn print<'a>(
188188
}
189189
let target_info = TargetInfo::new(gctx, &build_config.requested_kinds, &rustc, *kind)?;
190190
let mut process = rustc.process();
191+
apply_env_config(gctx, &mut process)?;
191192
process.args(&target_info.rustflags);
192193
if let Some(args) = target_rustc_args {
193194
process.args(args);

tests/testsuite/rustc.rs

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -794,6 +794,46 @@ windows
794794
.run();
795795
}
796796

797+
#[cargo_test]
798+
fn rustc_with_print_cfg_config_toml_env() {
799+
let p = project()
800+
.file("Cargo.toml", &basic_bin_manifest("foo"))
801+
.file(
802+
"targets/best-target.json",
803+
r#"{
804+
"llvm-target": "x86_64-unknown-none",
805+
"target-pointer-width": "64",
806+
"data-layout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128",
807+
"arch": "x86_64"
808+
}"#,
809+
)
810+
.file(
811+
".cargo/config.toml",
812+
r#"
813+
[build]
814+
target = "best-target"
815+
[env]
816+
RUST_TARGET_PATH = { value = "./targets", relative = true }
817+
"#,
818+
)
819+
.file("src/main.rs", r#"fn main() {} "#)
820+
.build();
821+
822+
p.cargo("rustc -Z unstable-options --print cfg")
823+
.masquerade_as_nightly_cargo(&["print"])
824+
.with_stdout_data(
825+
str![[r#"
826+
debug_assertions
827+
target_arch="x86_64"
828+
target_endian="little"
829+
target_pointer_width="64"
830+
...
831+
"#]]
832+
.unordered(),
833+
)
834+
.run();
835+
}
836+
797837
#[cargo_test]
798838
fn precedence() {
799839
// Ensure that the precedence of cargo-rustc is only lower than RUSTFLAGS,

0 commit comments

Comments
 (0)