Skip to content

Commit

Permalink
Merge pull request #335 from dtolnay/cargoenvvar
Browse files Browse the repository at this point in the history
Require cargo promised environment variables to be present
  • Loading branch information
dtolnay authored Dec 30, 2023
2 parents 15646f4 + b1590b1 commit eb66ff5
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions build.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
#![allow(clippy::option_if_let_else)]

use std::env;
use std::ffi::OsString;
use std::path::Path;
use std::process::{Command, ExitStatus, Stdio};
use std::process::{self, Command, ExitStatus, Stdio};
use std::str;

#[cfg(all(feature = "backtrace", not(feature = "std")))]
Expand Down Expand Up @@ -66,8 +67,8 @@ fn compile_probe() -> Option<ExitStatus> {
return None;
}

let rustc = env::var_os("RUSTC")?;
let out_dir = env::var_os("OUT_DIR")?;
let rustc = cargo_env_var("RUSTC");
let out_dir = cargo_env_var("OUT_DIR");
let probefile = Path::new("build").join("probe.rs");

// Make sure to pick up Cargo rustc configuration.
Expand Down Expand Up @@ -115,3 +116,13 @@ fn rustc_minor_version() -> Option<u32> {
}
pieces.next()?.parse().ok()
}

fn cargo_env_var(key: &str) -> OsString {
env::var_os(key).unwrap_or_else(|| {
eprintln!(
"Environment variable ${} is not set during execution of build script",
key,
);
process::exit(1);
})
}

0 comments on commit eb66ff5

Please sign in to comment.