summaryrefslogtreecommitdiffstats
path: root/compiler/rustc_codegen_gcc/build_system/src/main.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-07 05:48:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-07 05:48:48 +0000
commitef24de24a82fe681581cc130f342363c47c0969a (patch)
tree0d494f7e1a38b95c92426f58fe6eaa877303a86c /compiler/rustc_codegen_gcc/build_system/src/main.rs
parentReleasing progress-linux version 1.74.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-ef24de24a82fe681581cc130f342363c47c0969a.tar.xz
rustc-ef24de24a82fe681581cc130f342363c47c0969a.zip
Merging upstream version 1.75.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'compiler/rustc_codegen_gcc/build_system/src/main.rs')
-rw-r--r--compiler/rustc_codegen_gcc/build_system/src/main.rs67
1 files changed, 67 insertions, 0 deletions
diff --git a/compiler/rustc_codegen_gcc/build_system/src/main.rs b/compiler/rustc_codegen_gcc/build_system/src/main.rs
new file mode 100644
index 000000000..bff82b6e3
--- /dev/null
+++ b/compiler/rustc_codegen_gcc/build_system/src/main.rs
@@ -0,0 +1,67 @@
+use std::env;
+use std::process;
+
+mod build;
+mod config;
+mod prepare;
+mod rustc_info;
+mod test;
+mod utils;
+
+macro_rules! arg_error {
+ ($($err:tt)*) => {{
+ eprintln!($($err)*);
+ eprintln!();
+ usage();
+ std::process::exit(1);
+ }};
+}
+
+fn usage() {
+ println!(
+ "\
+Available commands for build_system:
+
+ prepare : Run prepare command
+ build : Run build command
+ test : Run test command
+ --help : Show this message"
+ );
+}
+
+pub enum Command {
+ Prepare,
+ Build,
+ Test,
+}
+
+fn main() {
+ if env::var("RUST_BACKTRACE").is_err() {
+ env::set_var("RUST_BACKTRACE", "1");
+ }
+
+ let command = match env::args().nth(1).as_deref() {
+ Some("prepare") => Command::Prepare,
+ Some("build") => Command::Build,
+ Some("test") => Command::Test,
+ Some("--help") => {
+ usage();
+ process::exit(0);
+ }
+ Some(flag) if flag.starts_with('-') => arg_error!("Expected command found flag {}", flag),
+ Some(command) => arg_error!("Unknown command {}", command),
+ None => {
+ usage();
+ process::exit(0);
+ }
+ };
+
+ if let Err(e) = match command {
+ Command::Prepare => prepare::run(),
+ Command::Build => build::run(),
+ Command::Test => test::run(),
+ } {
+ eprintln!("Command failed to run: {e:?}");
+ process::exit(1);
+ }
+}