CI/CD / preconditions (pull_request) Successful in 1s
Native JavaScript checks / Native launcher and release tests (pull_request) Successful in 1m2s
macOS checks / Native Rust tests and unsigned build (pull_request) Successful in 1m38s
CI/CD / test_and_check_app (pull_request) Successful in 6m47s
CI/CD / Publish immutable image (pull_request) Skipped
75 lines
2.1 KiB
Rust
75 lines
2.1 KiB
Rust
fn main() {
|
|
if std::env::var("CARGO_CFG_TARGET_OS").as_deref() == Ok("macos") {
|
|
build_navigation();
|
|
}
|
|
tauri_build::build();
|
|
}
|
|
|
|
fn build_navigation() {
|
|
use std::{env, path::PathBuf, process::Command};
|
|
|
|
println!("cargo:rerun-if-changed=src/navigation.m");
|
|
println!("cargo:rerun-if-changed=src/settings.m");
|
|
let output = PathBuf::from(env::var_os("OUT_DIR").unwrap());
|
|
let object = output.join("navigation.o");
|
|
let settings_object = output.join("settings.o");
|
|
let archive = output.join("libkanban_navigation.a");
|
|
let arch = match env::var("CARGO_CFG_TARGET_ARCH").unwrap().as_str() {
|
|
"aarch64" => "arm64",
|
|
"x86_64" => "x86_64",
|
|
_ => panic!("Unsupported macOS architecture"),
|
|
};
|
|
assert!(Command::new("xcrun")
|
|
.args([
|
|
"--sdk",
|
|
"macosx",
|
|
"clang",
|
|
"-fobjc-arc",
|
|
"-fblocks",
|
|
"-Wall",
|
|
"-Werror",
|
|
"-mmacosx-version-min=14.0",
|
|
"-arch",
|
|
arch,
|
|
"-c",
|
|
"src/navigation.m",
|
|
"-o"
|
|
])
|
|
.arg(&object)
|
|
.status()
|
|
.expect("Xcode clang is required")
|
|
.success());
|
|
assert!(Command::new("xcrun")
|
|
.args([
|
|
"--sdk",
|
|
"macosx",
|
|
"clang",
|
|
"-fobjc-arc",
|
|
"-fblocks",
|
|
"-Wall",
|
|
"-Werror",
|
|
"-mmacosx-version-min=14.0",
|
|
"-arch",
|
|
arch,
|
|
"-c",
|
|
"src/settings.m",
|
|
"-o"
|
|
])
|
|
.arg(&settings_object)
|
|
.status()
|
|
.expect("Xcode clang is required")
|
|
.success());
|
|
assert!(Command::new("xcrun")
|
|
.args(["ar", "crs"])
|
|
.arg(&archive)
|
|
.arg(&object)
|
|
.arg(&settings_object)
|
|
.status()
|
|
.expect("Xcode ar is required")
|
|
.success());
|
|
println!("cargo:rustc-link-search=native={}", output.display());
|
|
println!("cargo:rustc-link-lib=static=kanban_navigation");
|
|
println!("cargo:rustc-link-lib=framework=AppKit");
|
|
println!("cargo:rustc-link-lib=framework=WebKit");
|
|
}
|