Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 44933b5

Browse filesBrowse files
committed
Print env var in --print=deployment-target
The deployment target environment variable is OS-specific, and if you're in a place where you're asking `rustc` for the deployment target, you're likely to also wanna know the environment variable.
1 parent 22bcb81 commit 44933b5
Copy full SHA for 44933b5

File tree

Expand file treeCollapse file tree

5 files changed

+28
-16
lines changed
Filter options
Expand file treeCollapse file tree

5 files changed

+28
-16
lines changed

‎compiler/rustc_codegen_ssa/src/back/apple.rs

Copy file name to clipboardExpand all lines: compiler/rustc_codegen_ssa/src/back/apple.rs
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ fn minimum_deployment_target(target: &Target) -> OSVersion {
9797
}
9898

9999
/// Name of the environment variable used to fetch the deployment target on the given OS.
100-
fn deployment_target_env_var(os: &str) -> &'static str {
100+
pub fn deployment_target_env_var(os: &str) -> &'static str {
101101
match os {
102102
"macos" => "MACOSX_DEPLOYMENT_TARGET",
103103
"ios" => "IPHONEOS_DEPLOYMENT_TARGET",

‎compiler/rustc_driver_impl/src/lib.rs

Copy file name to clipboardExpand all lines: compiler/rustc_driver_impl/src/lib.rs
+3-2Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -860,8 +860,9 @@ fn print_crate_info(
860860
DeploymentTarget => {
861861
if sess.target.is_like_osx {
862862
println_info!(
863-
"deployment_target={}",
864-
apple::pretty_version(apple::deployment_target(sess))
863+
"{}={}",
864+
apple::deployment_target_env_var(&sess.target.os),
865+
apple::pretty_version(apple::deployment_target(sess)),
865866
)
866867
} else {
867868
#[allow(rustc::diagnostic_outside_of_impl)]

‎tests/run-make/apple-deployment-target/rmake.rs

Copy file name to clipboardExpand all lines: tests/run-make/apple-deployment-target/rmake.rs
+22-12Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,31 @@ fn minos(file: &str, version: &str) {
2424

2525
fn main() {
2626
// These versions should generally be higher than the default versions
27-
let (env_var, example_version, higher_example_version) = match apple_os() {
28-
"macos" => ("MACOSX_DEPLOYMENT_TARGET", "12.0", "13.0"),
27+
let (example_version, higher_example_version) = match apple_os() {
28+
"macos" => ("12.0", "13.0"),
2929
// armv7s-apple-ios and i386-apple-ios only supports iOS 10.0
30-
"ios" if target() == "armv7s-apple-ios" || target() == "i386-apple-ios" => {
31-
("IPHONEOS_DEPLOYMENT_TARGET", "10.0", "10.0")
32-
}
33-
"ios" => ("IPHONEOS_DEPLOYMENT_TARGET", "15.0", "16.0"),
34-
"watchos" => ("WATCHOS_DEPLOYMENT_TARGET", "7.0", "9.0"),
35-
"tvos" => ("TVOS_DEPLOYMENT_TARGET", "14.0", "15.0"),
36-
"visionos" => ("XROS_DEPLOYMENT_TARGET", "1.1", "1.2"),
30+
"ios" if target() == "armv7s-apple-ios" || target() == "i386-apple-ios" => ("10.0", "10.0"),
31+
"ios" => ("15.0", "16.0"),
32+
"watchos" => ("7.0", "9.0"),
33+
"tvos" => ("14.0", "15.0"),
34+
"visionos" => ("1.1", "1.2"),
3735
_ => unreachable!(),
3836
};
39-
let default_version =
40-
rustc().target(target()).env_remove(env_var).print("deployment-target").run().stdout_utf8();
41-
let default_version = default_version.strip_prefix("deployment_target=").unwrap().trim();
37+
38+
// Remove env vars to get `rustc`'s default
39+
let output = rustc()
40+
.target(target())
41+
.env_remove("MACOSX_DEPLOYMENT_TARGET")
42+
.env_remove("IPHONEOS_DEPLOYMENT_TARGET")
43+
.env_remove("WATCHOS_DEPLOYMENT_TARGET")
44+
.env_remove("TVOS_DEPLOYMENT_TARGET")
45+
.env_remove("XROS_DEPLOYMENT_TARGET")
46+
.print("deployment-target")
47+
.run()
48+
.stdout_utf8();
49+
let (env_var, default_version) = output.split_once('=').unwrap();
50+
let env_var = env_var.trim();
51+
let default_version = default_version.trim();
4252

4353
// Test that version makes it to the object file.
4454
run_in_tmpdir(|| {

‎tests/ui/print-request/macos-target.rs

Copy file name to clipboardExpand all lines: tests/ui/print-request/macos-target.rs
+1Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
//@ only-apple
22
//@ compile-flags: --print deployment-target
3+
//@ normalize-stdout-test: "\w*_DEPLOYMENT_TARGET" -> "$$OS_DEPLOYMENT_TARGET"
34
//@ normalize-stdout-test: "\d+\." -> "$$CURRENT_MAJOR_VERSION."
45
//@ normalize-stdout-test: "\d+" -> "$$CURRENT_MINOR_VERSION"
56
//@ check-pass
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
deployment_target=$CURRENT_MAJOR_VERSION.$CURRENT_MINOR_VERSION
1+
$OS_DEPLOYMENT_TARGET=$CURRENT_MAJOR_VERSION.$CURRENT_MINOR_VERSION

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.