rust-mobile / ndk

Rust bindings to the Android NDK
Apache License 2.0
1.11k stars 110 forks source link

ndk-sys: Generate against latest upstream NDK (`11769913`) #471

Closed MarijnS95 closed 4 months ago

MarijnS95 commented 5 months ago

We're seeing with the R26 NDK release, which was published only half a month before the Android 14 (U, API level 34) release, that a lot of new APIs are still missing. This is not something we can deal with for very long in the NDK Rust crate, as we'd like to try out and use the latest functions at some point. These are not showing up in the followup r26b and r26c releases, nor does the r27 release seem close.

Fortunately live NDK builds of the aosp-main branch were pointed out which seem to include mostly if not exclusively stable changes to NDK (related) headers. As we're generally analyzing the changes and propagating them to the NDK wrappers (mostly additions, because API breaks are disallowed) we'd quickly catch a faulty push.

For now the only break is in a previously-faulty enum-constant name in ADataSpace.

Furthermore the upstream NDK finally contains some fixes that have been submitted to C++-like headers to make them once again C-compatible, and will allow us to start submitting bindings for:

New functions and enum variants enabled by this ndk-sys upgrade will be submitted in separate PRs too.

MarijnS95 commented 5 months ago

https://github.com/rust-mobile/ndk/actions/runs/8530126195/job/23367341518?pr=471 one of the CI runs is showing very nicely that upstream reports and changes are trickling down into this sysroot. The type of DataSpace is finally matching :)