diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 2b9fa7a..08a6724 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -5,6 +5,7 @@ on: branches: - "release/**" - "fullbuild" + - "androidbuild" tags: - "v*" diff --git a/MOBILE/android/ensure b/MOBILE/android/ensure index 0818fa9..f8f3edb 100755 --- a/MOBILE/android/ensure +++ b/MOBILE/android/ensure @@ -4,7 +4,7 @@ set -euo pipefail __install_extra="build-tools;32.0.0 platforms;android-31" -__ndk_version="23.1.7779620" +__ndk_version=$(cat ./NDKVERSION) ANDROID_HOME=$(./MOBILE/android/home) diff --git a/MOBILE/gomobile b/MOBILE/gomobile index 6f29573..8140de6 100755 --- a/MOBILE/gomobile +++ b/MOBILE/gomobile @@ -42,6 +42,14 @@ else OONI_PSIPHON_TAGS="" fi +MAYBE_ANDROID_API="" +if [[ $TARGET == "android" ]]; then + ANDROID_HOME=$(./MOBILE/android/home) + NDK_VERSION=$(cat NDKVERSION) + ANDROID_NDK_HOME=$ANDROID_HOME/ndk/$NDK_VERSION + MAYBE_ANDROID_API="-androidapi 21" +fi + PRODUCT=$(basename $PACKAGE) function cleanup() { @@ -51,11 +59,17 @@ function cleanup() { trap cleanup EXIT set -x + +# for documenting the environ variables used by the build +export ANDROID_HOME=$ANDROID_HOME +export ANDROID_NDK_HOME=$ANDROID_NDK_HOME + go install golang.org/x/mobile/cmd/gomobile@latest $(go env GOPATH)/bin/gomobile init # Adding gomobile to go.mod as documented by golang.org/wiki/Mobile go get -d golang.org/x/mobile/cmd/gomobile $(go env GOPATH)/bin/gomobile bind -target $TARGET \ - -o ./MOBILE/$TARGET/$PRODUCT.$EXT -tags="$OONI_PSIPHON_TAGS" \ + -o ./MOBILE/$TARGET/$PRODUCT.$EXT $MAYBE_ANDROID_API \ + -tags="$OONI_PSIPHON_TAGS" \ -ldflags '-s -w' ${GOLANG_EXTRA_FLAGS:-} $PACKAGE diff --git a/NDKVERSION b/NDKVERSION new file mode 100644 index 0000000..6094064 --- /dev/null +++ b/NDKVERSION @@ -0,0 +1 @@ +25.1.8937393