From c0f3fa675416647653631518b364437932f7bc33 Mon Sep 17 00:00:00 2001 From: Robert Bragg Date: Mon, 31 Mar 2025 19:35:17 +0100 Subject: [PATCH] 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 ``` --- android-activity/build.rs | 7 +++++-- android-activity/generate-bindings.sh | 7 ++++--- 2 files changed, 9 insertions(+), 5 deletions(-) mode change 100644 => 100755 android-activity/generate-bindings.sh diff --git a/android-activity/build.rs b/android-activity/build.rs index eab6121..833ecaa 100644 --- a/android-activity/build.rs +++ b/android-activity/build.rs @@ -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"] { diff --git a/android-activity/generate-bindings.sh b/android-activity/generate-bindings.sh old mode 100644 new mode 100755 index cee8691..8c1a4e9 --- a/android-activity/generate-bindings.sh +++ b/android-activity/generate-bindings.sh @@ -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