From ddb608e967413561465cd0cd5df9bd2e166ceefc Mon Sep 17 00:00:00 2001 From: David Mak Date: Wed, 6 Mar 2024 12:57:20 +0800 Subject: [PATCH] core: Match IRRT compile flavor with build profile --- nac3core/build.rs | 41 ++++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/nac3core/build.rs b/nac3core/build.rs index 6edcf0b..d0f3d21 100644 --- a/nac3core/build.rs +++ b/nac3core/build.rs @@ -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());