Rollup merge of #74643 - petrochenkov:noenvrerun, r=Mark-Simulacrum
build: Remove unnecessary `cargo:rerun-if-env-changed` annotations ... and a couple of related cleanups. rustc and cargo now track the majority of env var dependencies automatically (https://github.com/rust-lang/cargo/pull/8421), so the annotations are no longer necessary.
This commit is contained in:
commit
b32383ca90
|
@ -1,3 +1,5 @@
|
|||
use std::ffi::{OsStr, OsString};
|
||||
use std::fmt::Display;
|
||||
use std::path::{Path, PathBuf};
|
||||
use std::process::{Command, Stdio};
|
||||
use std::time::{SystemTime, UNIX_EPOCH};
|
||||
|
@ -28,6 +30,14 @@ macro_rules! t {
|
|||
};
|
||||
}
|
||||
|
||||
/// Reads an environment variable and adds it to dependencies.
|
||||
/// Supposed to be used for all variables except those set for build scripts by cargo
|
||||
/// https://doc.rust-lang.org/cargo/reference/environment-variables.html#environment-variables-cargo-sets-for-build-scripts
|
||||
pub fn tracked_env_var_os<K: AsRef<OsStr> + Display>(key: K) -> Option<OsString> {
|
||||
println!("cargo:rerun-if-env-changed={}", key);
|
||||
env::var_os(key)
|
||||
}
|
||||
|
||||
// Because Cargo adds the compiler's dylib path to our library search path, llvm-config may
|
||||
// break: the dylib path for the compiler, as of this writing, contains a copy of the LLVM
|
||||
// shared library, which means that when our freshly built llvm-config goes to load it's
|
||||
|
@ -37,10 +47,8 @@ macro_rules! t {
|
|||
// perfect -- we might actually want to see something from Cargo's added library paths -- but
|
||||
// for now it works.
|
||||
pub fn restore_library_path() {
|
||||
println!("cargo:rerun-if-env-changed=REAL_LIBRARY_PATH_VAR");
|
||||
println!("cargo:rerun-if-env-changed=REAL_LIBRARY_PATH");
|
||||
let key = env::var_os("REAL_LIBRARY_PATH_VAR").expect("REAL_LIBRARY_PATH_VAR");
|
||||
if let Some(env) = env::var_os("REAL_LIBRARY_PATH") {
|
||||
let key = tracked_env_var_os("REAL_LIBRARY_PATH_VAR").expect("REAL_LIBRARY_PATH_VAR");
|
||||
if let Some(env) = tracked_env_var_os("REAL_LIBRARY_PATH") {
|
||||
env::set_var(&key, &env);
|
||||
} else {
|
||||
env::remove_var(&key);
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
[package]
|
||||
authors = ["The Rust Project Developers"]
|
||||
build = "build.rs"
|
||||
name = "profiler_builtins"
|
||||
version = "0.0.0"
|
||||
edition = "2018"
|
||||
|
|
|
@ -9,6 +9,8 @@ fn main() {
|
|||
let target = env::var("TARGET").expect("TARGET was not set");
|
||||
let cfg = &mut cc::Build::new();
|
||||
|
||||
// FIXME: `rerun-if-changed` directives are not currently emitted and the build script
|
||||
// will not rerun on changes in these source files or headers included into them.
|
||||
let mut profile_sources = vec![
|
||||
"GCDAProfiling.c",
|
||||
"InstrProfiling.c",
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
fn main() {
|
||||
println!("cargo:rerun-if-changed=build.rs");
|
||||
println!("cargo:rerun-if-env-changed=CFG_RELEASE_CHANNEL");
|
||||
println!("cargo:rerun-if-env-changed=CFG_DISABLE_UNSTABLE_FEATURES");
|
||||
}
|
|
@ -3,7 +3,6 @@ authors = ["The Rust Project Developers"]
|
|||
name = "rustc_attr"
|
||||
version = "0.0.0"
|
||||
edition = "2018"
|
||||
build = "build.rs"
|
||||
|
||||
[lib]
|
||||
name = "rustc_attr"
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
fn main() {
|
||||
println!("cargo:rerun-if-changed=build.rs");
|
||||
println!("cargo:rerun-if-env-changed=CFG_RELEASE");
|
||||
println!("cargo:rerun-if-env-changed=CFG_RELEASE_CHANNEL");
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
fn main() {
|
||||
println!("cargo:rerun-if-changed=build.rs");
|
||||
println!("cargo:rerun-if-env-changed=CFG_VERSION");
|
||||
println!("cargo:rerun-if-env-changed=CFG_PREFIX");
|
||||
println!("cargo:rerun-if-env-changed=CFG_LLVM_ROOT");
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
fn main() {
|
||||
println!("cargo:rerun-if-changed=build.rs");
|
||||
println!("cargo:rerun-if-env-changed=CFG_RELEASE_CHANNEL");
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
fn main() {
|
||||
println!("cargo:rerun-if-changed=build.rs");
|
||||
println!("cargo:rerun-if-env-changed=CFG_RELEASE");
|
||||
println!("cargo:rerun-if-env-changed=CFG_VERSION");
|
||||
println!("cargo:rerun-if-env-changed=CFG_VER_DATE");
|
||||
println!("cargo:rerun-if-env-changed=CFG_VER_HASH");
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
fn main() {
|
||||
println!("cargo:rerun-if-changed=build.rs");
|
||||
println!("cargo:rerun-if-env-changed=CFG_VERSION");
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
fn main() {
|
||||
println!("cargo:rerun-if-changed=build.rs");
|
||||
println!("cargo:rerun-if-env-changed=RUSTC_INSTALL_BINDIR");
|
||||
}
|
|
@ -2,7 +2,6 @@
|
|||
authors = ["The Rust Project Developers"]
|
||||
name = "rustc_llvm"
|
||||
version = "0.0.0"
|
||||
build = "build.rs"
|
||||
edition = "2018"
|
||||
|
||||
[lib]
|
||||
|
|
|
@ -2,12 +2,12 @@ use std::env;
|
|||
use std::path::{Path, PathBuf};
|
||||
use std::process::Command;
|
||||
|
||||
use build_helper::output;
|
||||
use build_helper::{output, tracked_env_var_os};
|
||||
|
||||
fn detect_llvm_link() -> (&'static str, &'static str) {
|
||||
// Force the link mode we want, preferring static by default, but
|
||||
// possibly overridden by `configure --enable-llvm-link-shared`.
|
||||
if env::var_os("LLVM_LINK_SHARED").is_some() {
|
||||
if tracked_env_var_os("LLVM_LINK_SHARED").is_some() {
|
||||
("dylib", "--link-shared")
|
||||
} else {
|
||||
("static", "--link-static")
|
||||
|
@ -15,8 +15,7 @@ fn detect_llvm_link() -> (&'static str, &'static str) {
|
|||
}
|
||||
|
||||
fn main() {
|
||||
println!("cargo:rerun-if-env-changed=RUST_CHECK");
|
||||
if env::var_os("RUST_CHECK").is_some() {
|
||||
if tracked_env_var_os("RUST_CHECK").is_some() {
|
||||
// If we're just running `check`, there's no need for LLVM to be built.
|
||||
return;
|
||||
}
|
||||
|
@ -25,8 +24,8 @@ fn main() {
|
|||
|
||||
let target = env::var("TARGET").expect("TARGET was not set");
|
||||
let llvm_config =
|
||||
env::var_os("LLVM_CONFIG").map(|x| Some(PathBuf::from(x))).unwrap_or_else(|| {
|
||||
if let Some(dir) = env::var_os("CARGO_TARGET_DIR").map(PathBuf::from) {
|
||||
tracked_env_var_os("LLVM_CONFIG").map(|x| Some(PathBuf::from(x))).unwrap_or_else(|| {
|
||||
if let Some(dir) = tracked_env_var_os("CARGO_TARGET_DIR").map(PathBuf::from) {
|
||||
let to_test = dir
|
||||
.parent()
|
||||
.unwrap()
|
||||
|
@ -46,8 +45,6 @@ fn main() {
|
|||
}
|
||||
let llvm_config = llvm_config.unwrap_or_else(|| PathBuf::from("llvm-config"));
|
||||
|
||||
println!("cargo:rerun-if-env-changed=LLVM_CONFIG");
|
||||
|
||||
// Test whether we're cross-compiling LLVM. This is a pretty rare case
|
||||
// currently where we're producing an LLVM for a different platform than
|
||||
// what this build script is currently running on.
|
||||
|
@ -163,12 +160,11 @@ fn main() {
|
|||
cfg.define(&flag, None);
|
||||
}
|
||||
|
||||
println!("cargo:rerun-if-changed-env=LLVM_RUSTLLVM");
|
||||
if env::var_os("LLVM_RUSTLLVM").is_some() {
|
||||
if tracked_env_var_os("LLVM_RUSTLLVM").is_some() {
|
||||
cfg.define("LLVM_RUSTLLVM", None);
|
||||
}
|
||||
|
||||
if env::var_os("LLVM_NDEBUG").is_some() {
|
||||
if tracked_env_var_os("LLVM_NDEBUG").is_some() {
|
||||
cfg.define("NDEBUG", None);
|
||||
cfg.debug(false);
|
||||
}
|
||||
|
@ -255,7 +251,7 @@ fn main() {
|
|||
// librustc_llvm, for example when using static libc++, we may need to
|
||||
// manually specify the library search path and -ldl -lpthread as link
|
||||
// dependencies.
|
||||
let llvm_linker_flags = env::var_os("LLVM_LINKER_FLAGS");
|
||||
let llvm_linker_flags = tracked_env_var_os("LLVM_LINKER_FLAGS");
|
||||
if let Some(s) = llvm_linker_flags {
|
||||
for lib in s.into_string().unwrap().split_whitespace() {
|
||||
if lib.starts_with("-l") {
|
||||
|
@ -266,8 +262,8 @@ fn main() {
|
|||
}
|
||||
}
|
||||
|
||||
let llvm_static_stdcpp = env::var_os("LLVM_STATIC_STDCPP");
|
||||
let llvm_use_libcxx = env::var_os("LLVM_USE_LIBCXX");
|
||||
let llvm_static_stdcpp = tracked_env_var_os("LLVM_STATIC_STDCPP");
|
||||
let llvm_use_libcxx = tracked_env_var_os("LLVM_USE_LIBCXX");
|
||||
|
||||
let stdcppname = if target.contains("openbsd") {
|
||||
if target.contains("sparc64") { "estdc++" } else { "c++" }
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
fn main() {
|
||||
println!("cargo:rerun-if-changed=build.rs");
|
||||
println!("cargo:rerun-if-env-changed=CFG_VERSION");
|
||||
println!("cargo:rerun-if-env-changed=CFG_VIRTUAL_RUST_SOURCE_BASE_DIR");
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
use std::env;
|
||||
|
||||
fn main() {
|
||||
println!("cargo:rerun-if-changed=build.rs");
|
||||
println!("cargo:rerun-if-env-changed=CFG_LIBDIR_RELATIVE");
|
||||
println!("cargo:rerun-if-env-changed=CFG_COMPILER_HOST_TRIPLE");
|
||||
println!("cargo:rerun-if-env-changed=RUSTC_VERIFY_LLVM_IR");
|
||||
|
||||
if env::var_os("RUSTC_VERIFY_LLVM_IR").is_some() {
|
||||
println!("cargo:rustc-cfg=always_verify_llvm_ir");
|
||||
}
|
||||
}
|
|
@ -548,7 +548,7 @@ impl Session {
|
|||
self.opts.debugging_opts.asm_comments
|
||||
}
|
||||
pub fn verify_llvm_ir(&self) -> bool {
|
||||
self.opts.debugging_opts.verify_llvm_ir || cfg!(always_verify_llvm_ir)
|
||||
self.opts.debugging_opts.verify_llvm_ir || option_env!("RUSTC_VERIFY_LLVM_IR").is_some()
|
||||
}
|
||||
pub fn borrowck_stats(&self) -> bool {
|
||||
self.opts.debugging_opts.borrowck_stats
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
fn main() {
|
||||
println!("cargo:rerun-if-changed=build.rs");
|
||||
println!("cargo:rerun-if-env-changed=CFG_DEFAULT_LINKER");
|
||||
}
|
|
@ -2,7 +2,6 @@
|
|||
authors = ["The Rust Project Developers"]
|
||||
name = "std"
|
||||
version = "0.0.0"
|
||||
build = "build.rs"
|
||||
license = "MIT OR Apache-2.0"
|
||||
repository = "https://github.com/rust-lang/rust.git"
|
||||
description = "The Rust Standard Library"
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
use std::env;
|
||||
|
||||
fn main() {
|
||||
println!("cargo:rerun-if-changed=build.rs");
|
||||
let target = env::var("TARGET").expect("TARGET was not set");
|
||||
if target.contains("linux") {
|
||||
if target.contains("android") {
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
authors = ["The Rust Project Developers"]
|
||||
name = "unwind"
|
||||
version = "0.0.0"
|
||||
build = "build.rs"
|
||||
edition = "2018"
|
||||
include = [
|
||||
'/libunwind/*',
|
||||
|
|
|
@ -3,7 +3,6 @@ authors = ["The Rust Project Developers"]
|
|||
name = "error_index_generator"
|
||||
version = "0.0.0"
|
||||
edition = "2018"
|
||||
build = "build.rs"
|
||||
|
||||
[dependencies]
|
||||
rustdoc = { path = "../../librustdoc" }
|
||||
|
|
Loading…
Reference in New Issue