[package] name = "wzp-native" version = "0.1.0" edition = "2024" description = "WarzonePhone native audio library — standalone Android cdylib that eventually owns all C++ (Oboe bridge) and exposes a pure-C FFI. Built with cargo-ndk, loaded at runtime by the Tauri desktop cdylib via libloading." # Crate-type is DELIBERATELY only cdylib (no rlib, no staticlib). This crate # is built with `cargo ndk -t arm64-v8a build --release -p wzp-native` as a # standalone .so, which is the same path the legacy wzp-android crate uses # successfully on the same phone / same NDK. Keeping the crate-type single # avoids the rust-lang/rust#104707 symbol leak that bit us when Tauri's # desktop crate had ["staticlib", "cdylib", "rlib"] and any C++ static # archive pulled bionic's internal pthread_create into the final .so. [lib] name = "wzp_native" crate-type = ["cdylib"] [build-dependencies] # cc is SAFE to use here because this crate is a single-cdylib: no # staticlib in crate-type → no rust-lang/rust#104707 symbol leak. The # legacy wzp-android crate uses the same setup and works. cc = "1" [dependencies] # Phase 2: Oboe C++ audio bridge. Still no Rust deps — we do the whole # audio pipeline via extern "C" into the bundled C++ and expose our own # narrow extern "C" API for wzp-desktop to dlopen via libloading. # Phase 3 can add wzp-proto/wzp-codec if we want to share codec logic # instead of calling back into wzp-desktop via callbacks.