diff --git a/desktop/src-tauri/build.rs b/desktop/src-tauri/build.rs index f6240955..a5a10297 100644 --- a/desktop/src-tauri/build.rs +++ b/desktop/src-tauri/build.rs @@ -4,15 +4,24 @@ fn main() { use std::{env, path::PathBuf, process::Command}; let out_dir = PathBuf::from(env::var("OUT_DIR").expect("OUT_DIR is set by Cargo")); + let target = env::var("TARGET").expect("TARGET is set by Cargo"); + let arch = match target.as_str() { + "aarch64-apple-darwin" => "arm64", + "x86_64-apple-darwin" => "x86_64", + _ => panic!("unsupported macOS notification bridge target: {target}"), + }; let object_path = out_dir.join("macos_notifications.o"); let source_path = PathBuf::from("src/macos_notifications.m"); println!("cargo:rerun-if-changed={}", source_path.display()); + println!("cargo:rerun-if-env-changed=TARGET"); let status = Command::new("clang") .args([ "-fobjc-arc", "-c", + "-arch", + arch, source_path .to_str() .expect("notification bridge path is UTF-8"),