Use helper functions to read environment variables · patricklam/verify-rust-std@0e0134f (original) (raw)

Original file line number Diff line number Diff line change
@@ -8,9 +8,8 @@ use std::env;
8 8 use std::path::PathBuf;
9 9
10 10 fn main() {
11 -println!("cargo:rerun-if-env-changed=LLVM_PROFILER_RT_LIB");
12 -if let Ok(rt) = env::var("LLVM_PROFILER_RT_LIB") {
13 -println!("cargo:rustc-link-lib=static:+verbatim={rt}");
11 +if let Ok(rt) = tracked_env_var("LLVM_PROFILER_RT_LIB") {
12 +println!("cargo::rustc-link-lib=static:+verbatim={rt}");
14 13 return;
15 14 }
16 15
@@ -82,12 +81,10 @@ fn main() {
82 81 }
83 82
84 83 // Get the LLVM `compiler-rt` directory from bootstrap.
85 -println!("cargo:rerun-if-env-changed=RUST_COMPILER_RT_FOR_PROFILER");
86 -let root = PathBuf::from(env::var("RUST_COMPILER_RT_FOR_PROFILER").unwrap_or_else(|_
87 -let path = "../../src/llvm-project/compiler-rt";
88 -println!("RUST_COMPILER_RT_FOR_PROFILER was not set; falling back to {path:?}");
89 - path.to_owned()
90 -}));
84 +let root = PathBuf::from(tracked_env_var_or_fallback(
85 +"RUST_COMPILER_RT_FOR_PROFILER",
86 +"../../src/llvm-project/compiler-rt",
87 +));
91 88
92 89 let src_root = root.join("lib").join("profile");
93 90 assert!(src_root.exists(), "profiler runtime source directory not found: {src_root:?}");
@@ -105,3 +102,14 @@ fn main() {
105 102 cfg.warnings(false);
106 103 cfg.compile("profiler-rt");
107 104 }
105 +
106 +fn tracked_env_var(key: &str) -> Result<String, env::VarError> {
107 +println!("cargo::rerun-if-env-changed={key}");
108 + env::var(key)
109 +}
110 +fn tracked_env_var_or_fallback(key: &str, fallback: &str) -> String {
111 +tracked_env_var(key).unwrap_or_else(|_
112 +println!("cargo::warning={key} was not set; falling back to {fallback:?}");
113 + fallback.to_owned()
114 +})
115 +}