create helper module to be embedded for the bootstrap binaries
Signed-off-by: onur-ozkan <work@onurozkan.dev>
This commit is contained in:
parent
41cb42a370
commit
90348db550
24
src/bootstrap/bin/_helper.rs
Normal file
24
src/bootstrap/bin/_helper.rs
Normal file
@ -0,0 +1,24 @@
|
||||
/// Parses the value of the "RUSTC_VERBOSE" environment variable and returns it as a `usize`.
|
||||
/// If it was not defined, returns 0 by default.
|
||||
///
|
||||
/// Panics if "RUSTC_VERBOSE" is defined with the value that is not an unsigned integer.
|
||||
fn parse_rustc_verbose() -> usize {
|
||||
use std::str::FromStr;
|
||||
|
||||
match std::env::var("RUSTC_VERBOSE") {
|
||||
Ok(s) => usize::from_str(&s).expect("RUSTC_VERBOSE should be an integer"),
|
||||
Err(_) => 0,
|
||||
}
|
||||
}
|
||||
|
||||
/// Parses the value of the "RUSTC_STAGE" environment variable and returns it as a `String`.
|
||||
///
|
||||
/// If "RUSTC_STAGE" was not set, the program will be terminated with 101.
|
||||
fn parse_rustc_stage() -> String {
|
||||
std::env::var("RUSTC_STAGE").unwrap_or_else(|_| {
|
||||
// Don't panic here; it's reasonable to try and run these shims directly. Give a helpful error instead.
|
||||
eprintln!("rustc shim: fatal: RUSTC_STAGE was not set");
|
||||
eprintln!("rustc shim: note: use `x.py build -vvv` to see all environment variables set by bootstrap");
|
||||
exit(101);
|
||||
})
|
||||
}
|
@ -16,27 +16,25 @@
|
||||
//! never get replaced.
|
||||
|
||||
include!("../dylib_util.rs");
|
||||
include!("./_helper.rs");
|
||||
|
||||
use std::env;
|
||||
use std::path::PathBuf;
|
||||
use std::process::{exit, Child, Command};
|
||||
use std::str::FromStr;
|
||||
use std::time::Instant;
|
||||
|
||||
fn main() {
|
||||
let args = env::args_os().skip(1).collect::<Vec<_>>();
|
||||
let arg = |name| args.windows(2).find(|args| args[0] == name).and_then(|args| args[1].to_str());
|
||||
|
||||
let stage = parse_rustc_stage();
|
||||
let verbose = parse_rustc_verbose();
|
||||
|
||||
// Detect whether or not we're a build script depending on whether --target
|
||||
// is passed (a bit janky...)
|
||||
let target = arg("--target");
|
||||
let version = args.iter().find(|w| &**w == "-vV");
|
||||
|
||||
let verbose = match env::var("RUSTC_VERBOSE") {
|
||||
Ok(s) => usize::from_str(&s).expect("RUSTC_VERBOSE should be an integer"),
|
||||
Err(_) => 0,
|
||||
};
|
||||
|
||||
// Use a different compiler for build scripts, since there may not yet be a
|
||||
// libstd for the real compiler to use. However, if Cargo is attempting to
|
||||
// determine the version of the compiler, the real compiler needs to be
|
||||
@ -47,12 +45,7 @@ fn main() {
|
||||
} else {
|
||||
("RUSTC_REAL", "RUSTC_LIBDIR")
|
||||
};
|
||||
let stage = env::var("RUSTC_STAGE").unwrap_or_else(|_| {
|
||||
// Don't panic here; it's reasonable to try and run these shims directly. Give a helpful error instead.
|
||||
eprintln!("rustc shim: fatal: RUSTC_STAGE was not set");
|
||||
eprintln!("rustc shim: note: use `x.py build -vvv` to see all environment variables set by bootstrap");
|
||||
exit(101);
|
||||
});
|
||||
|
||||
let sysroot = env::var_os("RUSTC_SYSROOT").expect("RUSTC_SYSROOT was not set");
|
||||
let on_fail = env::var_os("RUSTC_ON_FAIL").map(Command::new);
|
||||
|
||||
|
@ -9,14 +9,14 @@ use std::process::{exit, Command};
|
||||
|
||||
include!("../dylib_util.rs");
|
||||
|
||||
include!("./_helper.rs");
|
||||
|
||||
fn main() {
|
||||
let args = env::args_os().skip(1).collect::<Vec<_>>();
|
||||
let stage = env::var("RUSTC_STAGE").unwrap_or_else(|_| {
|
||||
// Don't panic here; it's reasonable to try and run these shims directly. Give a helpful error instead.
|
||||
eprintln!("rustc shim: fatal: RUSTC_STAGE was not set");
|
||||
eprintln!("rustc shim: note: use `x.py build -vvv` to see all environment variables set by bootstrap");
|
||||
exit(101);
|
||||
});
|
||||
|
||||
let stage = parse_rustc_stage();
|
||||
let verbose = parse_rustc_verbose();
|
||||
|
||||
let rustdoc = env::var_os("RUSTDOC_REAL").expect("RUSTDOC_REAL was not set");
|
||||
let libdir = env::var_os("RUSTDOC_LIBDIR").expect("RUSTDOC_LIBDIR was not set");
|
||||
let sysroot = env::var_os("RUSTC_SYSROOT").expect("RUSTC_SYSROOT was not set");
|
||||
@ -25,13 +25,6 @@ fn main() {
|
||||
// is passed (a bit janky...)
|
||||
let target = args.windows(2).find(|w| &*w[0] == "--target").and_then(|w| w[1].to_str());
|
||||
|
||||
use std::str::FromStr;
|
||||
|
||||
let verbose = match env::var("RUSTC_VERBOSE") {
|
||||
Ok(s) => usize::from_str(&s).expect("RUSTC_VERBOSE should be an integer"),
|
||||
Err(_) => 0,
|
||||
};
|
||||
|
||||
let mut dylib_path = dylib_path();
|
||||
dylib_path.insert(0, PathBuf::from(libdir.clone()));
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user