@@ -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 |
+} |