core: Match IRRT compile flavor with build profile

This commit is contained in:
David Mak 2024-03-06 12:57:20 +08:00
parent b26cb2b360
commit ddb608e967
1 changed files with 28 additions and 13 deletions

View File

@ -14,7 +14,20 @@ fn main() {
* HACK: Sadly, clang doesn't let us emit generic LLVM bitcode. * HACK: Sadly, clang doesn't let us emit generic LLVM bitcode.
* Compiling for WASM32 and filtering the output with regex is the closest we can get. * Compiling for WASM32 and filtering the output with regex is the closest we can get.
*/ */
const FLAG: &[&str] = &[ let flags: &[&str] = match env::var("PROFILE").unwrap().as_str() {
"debug" => &[
"--target=wasm32",
FILE,
"-fno-discard-value-names",
"-O0",
"-emit-llvm",
"-S",
"-Wall",
"-Wextra",
"-o",
"-",
],
"release" => &[
"--target=wasm32", "--target=wasm32",
FILE, FILE,
"-fno-discard-value-names", "-fno-discard-value-names",
@ -25,14 +38,16 @@ fn main() {
"-Wextra", "-Wextra",
"-o", "-o",
"-", "-",
]; ],
_ => unreachable!(),
};
println!("cargo:rerun-if-changed={FILE}"); println!("cargo:rerun-if-changed={FILE}");
let out_dir = env::var("OUT_DIR").unwrap(); let out_dir = env::var("OUT_DIR").unwrap();
let out_path = Path::new(&out_dir); let out_path = Path::new(&out_dir);
let output = Command::new("clang-irrt") let output = Command::new("clang-irrt")
.args(FLAG) .args(flags)
.output() .output()
.map(|o| { .map(|o| {
assert!(o.status.success(), "{}", std::str::from_utf8(&o.stderr).unwrap()); assert!(o.status.success(), "{}", std::str::from_utf8(&o.stderr).unwrap());