open-quantum-safe / liboqs-rust

Rust bindings for liboqs
https://openquantumsafe.org/
Apache License 2.0
120 stars 48 forks source link

build: Update build script to enable cross compiling for Android #264

Open nappairam opened 3 months ago

nappairam commented 3 months ago

Enable building liboqs-rust for Android target.

Based on the cmake manual, cross compiling for Android, https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling-for-android-with-the-ndk

CMAKE_SYSTEM_NAME must be set to Android.

Additionally, set CMAKE_ANDROID_NDK if corresponding env var is available. Android ecosystem uses both ANDROID_NDK_ROOT and ANDROID_NDK_HOME to refer to NDK's path.

For example, github runners has both variables set: https://github.com/actions/runner-images/issues/2426

These two cmake variables are sufficient to build for Android with cargo-ndk tool.

I have also fixed the mac-os CI issue and added a step to verify android builds for unix variants.