core: Match IRRT compile flavor with build profile

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,25 +14,40 @@ fn main() {
* 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.
*/
const FLAG: &[&str] = &[
"--target=wasm32",
FILE,
"-fno-discard-value-names",
"-O3",
"-emit-llvm",
"-S",
"-Wall",
"-Wextra",
"-o",
"-",
];
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",
FILE,
"-fno-discard-value-names",
"-O3",
"-emit-llvm",
"-S",
"-Wall",
"-Wextra",
"-o",
"-",
],
_ => unreachable!(),
};
println!("cargo:rerun-if-changed={FILE}");
let out_dir = env::var("OUT_DIR").unwrap();
let out_path = Path::new(&out_dir);
let output = Command::new("clang-irrt")
.args(FLAG)
.args(flags)
.output()
.map(|o| {
assert!(o.status.success(), "{}", std::str::from_utf8(&o.stderr).unwrap());