@@ -2,21 +2,20 @@ use std::env;
22use std:: path:: { Path , PathBuf } ;
33use std:: process:: Command ;
44
5- use build_helper:: output;
5+ use build_helper:: { output, tracked_env_var_os } ;
66
77fn detect_llvm_link ( ) -> ( & ' static str , & ' static str ) {
88 // Force the link mode we want, preferring static by default, but
99 // possibly overridden by `configure --enable-llvm-link-shared`.
10- if env :: var_os ( "LLVM_LINK_SHARED" ) . is_some ( ) {
10+ if tracked_env_var_os ( "LLVM_LINK_SHARED" ) . is_some ( ) {
1111 ( "dylib" , "--link-shared" )
1212 } else {
1313 ( "static" , "--link-static" )
1414 }
1515}
1616
1717fn main ( ) {
18- println ! ( "cargo:rerun-if-env-changed=RUST_CHECK" ) ;
19- if env:: var_os ( "RUST_CHECK" ) . is_some ( ) {
18+ if tracked_env_var_os ( "RUST_CHECK" ) . is_some ( ) {
2019 // If we're just running `check`, there's no need for LLVM to be built.
2120 return ;
2221 }
@@ -25,8 +24,8 @@ fn main() {
2524
2625 let target = env:: var ( "TARGET" ) . expect ( "TARGET was not set" ) ;
2726 let llvm_config =
28- env :: var_os ( "LLVM_CONFIG" ) . map ( |x| Some ( PathBuf :: from ( x) ) ) . unwrap_or_else ( || {
29- if let Some ( dir) = env :: var_os ( "CARGO_TARGET_DIR" ) . map ( PathBuf :: from) {
27+ tracked_env_var_os ( "LLVM_CONFIG" ) . map ( |x| Some ( PathBuf :: from ( x) ) ) . unwrap_or_else ( || {
28+ if let Some ( dir) = tracked_env_var_os ( "CARGO_TARGET_DIR" ) . map ( PathBuf :: from) {
3029 let to_test = dir
3130 . parent ( )
3231 . unwrap ( )
@@ -46,8 +45,6 @@ fn main() {
4645 }
4746 let llvm_config = llvm_config. unwrap_or_else ( || PathBuf :: from ( "llvm-config" ) ) ;
4847
49- println ! ( "cargo:rerun-if-env-changed=LLVM_CONFIG" ) ;
50-
5148 // Test whether we're cross-compiling LLVM. This is a pretty rare case
5249 // currently where we're producing an LLVM for a different platform than
5350 // what this build script is currently running on.
@@ -163,12 +160,11 @@ fn main() {
163160 cfg. define ( & flag, None ) ;
164161 }
165162
166- println ! ( "cargo:rerun-if-env-changed=LLVM_RUSTLLVM" ) ;
167- if env:: var_os ( "LLVM_RUSTLLVM" ) . is_some ( ) {
163+ if tracked_env_var_os ( "LLVM_RUSTLLVM" ) . is_some ( ) {
168164 cfg. define ( "LLVM_RUSTLLVM" , None ) ;
169165 }
170166
171- if env :: var_os ( "LLVM_NDEBUG" ) . is_some ( ) {
167+ if tracked_env_var_os ( "LLVM_NDEBUG" ) . is_some ( ) {
172168 cfg. define ( "NDEBUG" , None ) ;
173169 cfg. debug ( false ) ;
174170 }
@@ -255,7 +251,7 @@ fn main() {
255251 // librustc_llvm, for example when using static libc++, we may need to
256252 // manually specify the library search path and -ldl -lpthread as link
257253 // dependencies.
258- let llvm_linker_flags = env :: var_os ( "LLVM_LINKER_FLAGS" ) ;
254+ let llvm_linker_flags = tracked_env_var_os ( "LLVM_LINKER_FLAGS" ) ;
259255 if let Some ( s) = llvm_linker_flags {
260256 for lib in s. into_string ( ) . unwrap ( ) . split_whitespace ( ) {
261257 if lib. starts_with ( "-l" ) {
@@ -266,8 +262,8 @@ fn main() {
266262 }
267263 }
268264
269- let llvm_static_stdcpp = env :: var_os ( "LLVM_STATIC_STDCPP" ) ;
270- let llvm_use_libcxx = env :: var_os ( "LLVM_USE_LIBCXX" ) ;
265+ let llvm_static_stdcpp = tracked_env_var_os ( "LLVM_STATIC_STDCPP" ) ;
266+ let llvm_use_libcxx = tracked_env_var_os ( "LLVM_USE_LIBCXX" ) ;
271267
272268 let stdcppname = if target. contains ( "openbsd" ) {
273269 if target. contains ( "sparc64" ) { "estdc++" } else { "c++" }
0 commit comments