| #! /bin/sh | |
| # Copyright 2018 Google Inc. | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| make_gn() { | |
| #TODO: make this more configurable | |
| cat << EOF | |
| target_cpu = "$ARCH" | |
| is_debug = false | |
| ndk = "$ANDROID_NDK" | |
| ndk_api = 26 | |
| EOF | |
| } | |
| main() { | |
| APP="$1" | |
| LIB="$2" | |
| ANDROID_NDK="$(cd "$ANDROID_NDK"; pwd)" | |
| ANDROID_HOME="$(cd "$ANDROID_HOME"; pwd)" | |
| cd "$(dirname "$0")/../../.." | |
| python tools/git-sync-deps | |
| git clean -fxd platform_tools/android/apps/$APP | |
| mkdir -p platform_tools/android/apps/${APP}/src/main/assets | |
| cp -a resources platform_tools/android/apps/${APP}/src/main/assets/ | |
| for ARCH in arm arm64 x86 x64; do | |
| BUILD=out/${APP}-$ARCH | |
| mkdir -p "$BUILD" | |
| make_gn > "${BUILD}/args.gn" | |
| bin/gn gen $BUILD | |
| ninja -C $BUILD $LIB | |
| case $ARCH in | |
| arm) NATIVE=armeabi-v7a ;; | |
| arm64) NATIVE=arm64-v8a ;; | |
| x86) NATIVE=x86 ;; | |
| x64) NATIVE=x86_64 ;; | |
| *) usage ;; | |
| esac | |
| DST=platform_tools/android/apps/$APP/src/main/libs/$NATIVE | |
| mkdir -p $DST | |
| cp -a $BUILD/$LIB $DST/$LIB | |
| done | |
| ( | |
| cd platform_tools/android | |
| apps/gradlew --daemon -p apps/$APP -P suppressNativeBuild :${APP}:assembleUniversalDebug | |
| ) | |
| mkdir -p out/${APP}-universal | |
| cp platform_tools/android/apps/$APP/build/outputs/apk/${APP}-universal-debug.apk \ | |
| out/${APP}-universal/$APP-universal-debug.apk | |
| ls -l out/${APP}-universal/$APP-universal-debug.apk | |
| } | |
| usage() { | |
| cat >&2 <<EOM | |
| The environment variables ANDROID_NDK and ANDROID_HOME must be set to the | |
| locations of the Android NDK and SDK. Current values: | |
| ANDROID_NDK="$ANDROID_NDK" | |
| ANDROID_HOME="$ANDROID_HOME" | |
| Additionally, \`python\` and \`ninja\` should be in your path. | |
| EOM | |
| exit 1 | |
| } | |
| [ -d "$ANDROID_NDK" ] || usage | |
| [ -d "$ANDROID_HOME" ] || usage | |
| command -v ninja > /dev/null || usage | |
| command -v python > /dev/null || usage | |
| set -x # Verbose | |
| set -e # Exit immediately | |
| main viewer libviewer.so |