Refactor installation of C API and features supported (#8642)* Refactor installation of C API and features supportedThis commit overhauls and refactors the management of the building ofthe C AP
Refactor installation of C API and features supported (#8642)* Refactor installation of C API and features supportedThis commit overhauls and refactors the management of the building ofthe C API. Instead of this being script-based it's now done entirelythrough CMake and CMake is the primary focus for building the C API. Forexample building the C API release artifacts is now done through CMakeinstead of through a shell script's `cargo build` and manually movingartifacts.The benefits that this brings are:* The C API now properly hides symbols in its header files that weren't enabled at build time. This is done through a new build-time generated `conf.h` templated on a `conf.h.in` file in the source tree.* The C API's project now supports enabling/disabling Cargo features to have finer-grained support over what's included (plus auto-management of the header file).* Building the C API and managing it is now exclusively done through CMake. For example invoking `doxygen` now lives in CMake, installation lives there, etc.The `CMakeLists.txt` file for the C API is overhauled in the process ofdoing this. The build now primarily matches on the Rust target beingbuilt rather than the host target. Additionally installation will nowinstall both the static and shared libraries instead of just one.Additionally during this refactoring various bits and pieces ofAndroid-specific code were all removed. Management of the C toolchainfeels best left in scope of the caller (e.g. configuring `CC_*` env varsand such) rather than here.prtest:full* Don't use `option` for optional strings* Invert release build checkAlso adjust some indentation* Fix more indentation* Remove no-longer-used variable* Reduce duplication in feature macro
show more ...
Add Android release binaries to CI (#8601)* Add Android release binaries to CIThis commit is inspired by #6480 and historical asks for Androidbinaries. This does the bare minimum necessary to co
Add Android release binaries to CI (#8601)* Add Android release binaries to CIThis commit is inspired by #6480 and historical asks for Androidbinaries. This does the bare minimum necessary to configure C compilerssuch that we can produce binaries but I'll admit that I'm no Androiddeveloper myself so I have no idea if these are actually suitable foruse anywhere. Otherwise though this build subsumes the preexisting checkin CI that the build works for Android, so that part is removed too.This additionally changes how the NDK is managed from before. Previouslya GitHub Action was used to download Java and the NDK and additionallyused the `cargo ndk` subcommand. That's all removed now in favor ofconfiguring C compilers directly with a pre-installed version of the NDKwhich should help reduce the CI dependencies a bit.* Review comments* List Android as tier 3 target