use std::env;
use std::path::Path;
fn main() {
napi_build_ohos::setup();
println!("cargo:rerun-if-changed=src/lib.rs");
if env::var("OHOS_BUILD").is_ok() {
return;
}
let target = env::var("TARGET").unwrap_or_default();
if target.contains("android") {
let arch = env::var("CARGO_CFG_TARGET_ARCH").unwrap_or_default();
let arch_folder = match arch.as_str() {
"aarch64" => "arm64-v8a",
"arm" => "armeabi-v7a",
"x86_64" => "x86_64",
other => panic!("Unsupported Android architecture: {}", other),
};
let lib_path = Path::new("../RustDev/.arkui-x/android/app/libs/")
.join(arch_folder);
println!("cargo:rustc-link-search=native={}", lib_path.display());
println!("cargo:rustc-link-lib=arkui_android");
}
if target.contains("apple") {
let manifest_dir = env::var("CARGO_MANIFEST_DIR").unwrap();
let framework_dir = Path::new(&manifest_dir)
.join("../RustDev/.arkui-x/ios/frameworks/libarkui_ios.xcframework");
let platform_subdir = if target.contains("sim") {
"ios-arm64_x86_64-simulator"
} else {
"ios-arm64"
};
let framework_path = framework_dir.join(platform_subdir);
println!("cargo:rustc-link-search=framework={}", framework_path.display());
println!("cargo:rustc-link-lib=framework=libarkui_ios");
println!("cargo:rustc-link-lib=framework=JavaScriptCore");
println!("cargo:rustc-link-lib=framework=CoreFoundation");
println!("cargo:rustc-link-lib=framework=UIKit");
}
}