//! Build script for `chanora_bridge`.
//!
//! Android-only: emit `cargo:rustc-link-lib=dylib=c++_shared` so the
//! produced `libchanora_bridge.so` cdylib carries a `DT_NEEDED
//! libc++_shared.so` ELF entry. Without this, Android's per-library
//! namespace dynamic linker (API 24+) does NOT auto-resolve
//! C++ runtime symbols like `__cxa_pure_virtual` even when
//! `libc++_shared.so` is co-located in jniLibs/<abi>/ and already
//! loaded into the process via a prior `System.loadLibrary("c++_shared")`.
//!
//! Trace: SDD-105 (AndroidJniBootstrap — the bridge must load cleanly
//! before MainActivity.onCreate continues). Companion to SDD-118 item 6
//! extended (stages libc++_shared.so into jniLibs/<abi>/).
//!
//! Reference: https://developer.android.com/ndk/guides/cpp-support
//! and the namespace-isolation behavior introduced in API 24.

fn main() {
    let target_os = std::env::var("CARGO_CFG_TARGET_OS").unwrap_or_default();
    if target_os == "android" {
        // Dynamic linkage against the NDK shared C++ runtime. The runtime
        // .so is provided by the NDK sysroot at link time (cargo-ndk puts
        // the per-target sysroot lib dir on the linker search path) and
        // staged into jniLibs/<abi>/ at packaging time by the Gradle
        // task `:app:copyRustBridgeJniLibs<Profile>` per SDD-118 item 6
        // (extended).
        println!("cargo:rustc-link-lib=dylib=c++_shared");
    }
}
