diff --git a/build.rs b/build.rs index baa7f79..372c73c 100644 --- a/build.rs +++ b/build.rs @@ -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")))] @@ -66,8 +67,8 @@ fn compile_probe() -> Option { 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. @@ -115,3 +116,13 @@ fn rustc_minor_version() -> Option { } 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); + }) +}