use core::panic;
use std::process::Command;
fn main() {
if std::env::var("DOCS_RS").is_ok() { return; }
if std::env::var("CONSOLE_BUILD_SCRIPT_ALREADY_RUNNING").is_ok() { return; };
std::env::set_var("CONSOLE_BUILD_SCRIPT_ALREADY_RUNNING", "");
println!("cargo:warning= Tip: Under normal conditions, the `console_worker` executable wich is build, can be auto-detected, this may not be the case for release builds or if you want to 'ship' your executable without the normal cargo structure.");
let out_dir = std::env::var("OUT_DIR").unwrap();
println!("cargo:rerun-if-changed=build.rs");
let help = std::env::var("PIPED_CONSOLE_HELP").is_ok();
if help { println!(
"cargo:warning= <<<-------------- READ FROM HERE -------------->>>\
Please copy '{}\\debug\\console_worker.exe' into the directory where your executable is located. \
The 'console_worker.exe' file must be in the same directory as any executable calling the 'Console::new()' function. \
You can always create an issue on github if neither of this \
options work for you. \
",
&out_dir
); panic!() }
match Command::new("cargo").args(&["build", "--bin", "console_worker", "--target-dir", &out_dir]).output() {
Ok(out) => {
let out = match String::from_utf8(out.stderr) {
Ok(v) => v,
Err(e) => {
println!("cargo:warning=could not compile console_worker: the output of cargo did contain invalid utf-8: {}", e);
String::new()
}
};
if out.contains("error: ") || out.contains("warning: ") { println!("cargo:warning=during the compilation of the console_worker executable cargo has thrown an error: {}", out.replace('\n', " "));
}
},
Err(err) => {
println!("cargo:warning=could not spawn cargo process for building the console-worker executable: {}", err);
}
};
}