Check $ANDROID_GAMES_SDK for GameActivity source

For convenience, when updating to new GameActivity versions, this makes
it possible to build against the out-of-tree `android-games-sdk` repo.

This also updates `generate-bindings.sh` to point at $ANDROID_GAMES_SDK
if set.

E.g.

```
git clone git@github.com:rust-mobile/android-games-sdk.git \
    --branch android-activity-4.0.0
export ANDROID_GAMES_SDK=$PWD/android-games-sdk

./generate-bindings.sh
cargo build --features=game-activity --target=aarch64-linux-android
```
This commit is contained in:
Robert Bragg
2025-03-31 19:35:17 +01:00
parent 42af0cccfa
commit c0f3fa6754
2 changed files with 9 additions and 5 deletions
+5 -2
View File
@@ -1,11 +1,14 @@
#![allow(dead_code)]
fn build_glue_for_game_activity() {
let android_games_sdk =
std::env::var("ANDROID_GAMES_SDK").unwrap_or_else(|_err| "android-games-sdk".to_string());
let activity_path = |src_inc, name| {
format!("android-games-sdk/game-activity/prefab-src/modules/game-activity/{src_inc}/game-activity/{name}")
format!("{android_games_sdk}/game-activity/prefab-src/modules/game-activity/{src_inc}/game-activity/{name}")
};
let textinput_path = |src_inc, name| {
format!("android-games-sdk/game-text-input/prefab-src/modules/game-text-input/{src_inc}/game-text-input/{name}")
format!("{android_games_sdk}/game-text-input/prefab-src/modules/game-text-input/{src_inc}/game-text-input/{name}")
};
for f in ["GameActivity.cpp", "GameActivityEvents.cpp"] {
+4 -3
View File
@@ -2,6 +2,7 @@
# First install bindgen-cli via `cargo install bindgen-cli`
SDK_DIR="${ANDROID_GAMES_SDK:-android-games-sdk}"
if test -z "${ANDROID_NDK_ROOT}"; then
export ANDROID_NDK_ROOT=${ANDROID_NDK_HOME}
fi
@@ -37,9 +38,9 @@ while read ARCH && read TARGET ; do
--blocklist-function 'GameActivity_onCreate_C' \
--newtype-enum '\w+_(result|status)_t' \
-- \
-Iandroid-games-sdk/game-activity/prefab-src/modules/game-activity/include \
-Iandroid-games-sdk/game-text-input/prefab-src/modules/game-text-input/include \
-Iandroid-games-sdk/include \
"-I$SDK_DIR/game-activity/prefab-src/modules/game-activity/include" \
"-I$SDK_DIR/game-text-input/prefab-src/modules/game-text-input/include" \
"-I$SDK_DIR/include" \
--sysroot="$SYSROOT" --target=$TARGET
done << EOF