Aggregates all libnativeapi repositories as git submodules, so cross-repo changes (core → codegen → bindings) can be made and tracked together. The binding code generator lives directly in this repo under tools/codegen.
| Submodule | Description |
|---|---|
| core | C++ core library (nativeapi) |
| bindings/flutter | Flutter binding (nativeapi-flutter) |
| bindings/rust | Rust binding (nativeapi-rust) |
| bindings/csharp | C# binding (nativeapi-csharp) |
git clone --recursive [email protected]:libnativeapi/workspace.gitAlready cloned without --recursive?
git submodule update --inittools/codegen (in-repo, not a submodule) generates the C ABI and all language
bindings from the C++ headers in core/. Run it via the wrapper script:
./codegen # full run: C ABI, then all bindings
./codegen check # verify generated files are up to date (CI mode)
./codegen sync # after a core change: regenerate everything, bump each
# binding's embedded core submodule, rerun bindgen/ffigen,
# and commit core + bindings + workspace pointers
# (add --push to also push, -m "..." for the core message)See tools/codegen/README.md for details.
make status # working-tree status of every submodule
make sync # pull main in every submodule (fast-forward)
make bump # stage updated submodule pointers for commitDay-to-day development happens inside each submodule as if it were a standalone clone: commit and push from within the subdirectory as usual. The workspace repo only records snapshots — commit updated submodule pointers when the set of repos is in a known-good, compatible state.