diff options
author | Hal Canary <halcanary@google.com> | 2018-02-07 14:56:29 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-02-09 22:13:23 +0000 |
commit | c87fbf93d0c9329a1f14da55aa96a27547ae0df6 (patch) | |
tree | 790c77e4d89c4d15dffd09bd15e01a0403a04faf /tools/skqp | |
parent | 7fcfb621998648ba018e3b89e2cab3135bd46a1f (diff) |
Android Tools: build x86_64 correctly.
- Fix some naming confusion between `x64` and `x86-64`.
- SkQP Universal (multi-arch apk) Build Script
[tools/skqp/make_universal_apk]
- skqp/build.gradle: add `universal` product flavor
- skqp manifest: make debug build optional.
No-Try: true
Change-Id: Ic8cd88719a34786ab2d53771749b2beb9db98be5
Reviewed-on: https://skia-review.googlesource.com/105023
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Stephan Altmueller <stephana@google.com>
Diffstat (limited to 'tools/skqp')
-rwxr-xr-x | tools/skqp/make_universal_apk | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/tools/skqp/make_universal_apk b/tools/skqp/make_universal_apk new file mode 100755 index 0000000000..ce0607119c --- /dev/null +++ b/tools/skqp/make_universal_apk @@ -0,0 +1,77 @@ +#! /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. + +usage() { + cat >&2 <<EOM + +This script can be run with no arguments, in which case it will produce an +APK with native libraries for all four architectures: arm, arm64, x86, and +x64. You can instead list the architectures you want as arguments to this +script. For example: + + $0 arm x86 + +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 +for ARCH in $*; do case $ARCH in arm|arm64|x86|x64);; *) usage;; esac; done + +set -x # Verbose +set -e # Exit immediately + +cd "$(dirname "$0")/../.." + +python tools/skqp/download_model +python tools/skqp/setup_resources +python tools/git-sync-deps + +APP=skqp +LIB=libskqp_app.so + +find platform_tools/android/apps/$APP -name $LIB -exec rm {} + + +if [ $# -eq 0 ]; then + set -- arm arm64 x86 x64 +fi + +for ARCH in $*; do + BUILD=out/skqp-$ARCH + python tools/skqp/generate_gn_args $BUILD "$ANDROID_NDK" --arch "$ARCH" + 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/skqp +cp platform_tools/android/apps/$APP/build/outputs/apk/$APP-universal-debug.apk out/skqp/ + |