| #! /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_HOME" |
| ndk_api = 26 |
| EOF |
| } |
| |
| main() { |
| APP="$1" |
| LIB="$2" |
| |
| ANDROID_NDK_HOME="$(cd "$ANDROID_NDK_HOME"; 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_HOME and ANDROID_HOME must be set to the |
| locations of the Android NDK and SDK. Current values: |
| |
| ANDROID_NDK_HOME="$ANDROID_NDK_HOME" |
| ANDROID_HOME="$ANDROID_HOME" |
| |
| Additionally, \`python\` and \`ninja\` should be in your path. |
| |
| EOM |
| exit 1 |
| } |
| |
| [ -d "$ANDROID_NDK_HOME" ] || 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 |