reorganize bootstrap bins and helper module utilizations

Signed-off-by: onur-ozkan <work@onurozkan.dev>
This commit is contained in:
onur-ozkan 2023-10-07 23:33:27 +03:00
parent 631a116cd3
commit acef1c2c57
5 changed files with 19 additions and 35 deletions

View File

@ -1,25 +0,0 @@
/// 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.
#[allow(unused)]
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);
})
}

View File

@ -15,19 +15,24 @@
//! switching compilers for the bootstrap and for build scripts will probably
//! 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::process::{Child, Command};
use std::time::Instant;
use dylib_util::{dylib_path, dylib_path_var};
#[path = "../utils/bin_helpers.rs"]
mod bin_helpers;
#[path = "../utils/dylib_util.rs"]
mod dylib_util;
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 verbose = parse_rustc_verbose();
let verbose = bin_helpers::parse_rustc_verbose();
// Detect whether or not we're a build script depending on whether --target
// is passed (a bit janky...)

View File

@ -5,17 +5,21 @@
use std::env;
use std::ffi::OsString;
use std::path::PathBuf;
use std::process::{exit, Command};
use std::process::Command;
include!("../dylib_util.rs");
use dylib_util::{dylib_path, dylib_path_var};
include!("./_helper.rs");
#[path = "../utils/bin_helpers.rs"]
mod bin_helpers;
#[path = "../utils/dylib_util.rs"]
mod dylib_util;
fn main() {
let args = env::args_os().skip(1).collect::<Vec<_>>();
let stage = parse_rustc_stage();
let verbose = parse_rustc_verbose();
let stage = bin_helpers::parse_rustc_stage();
let verbose = bin_helpers::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");