a58bcf7ef8
Currently produces 30% smaller APKs. No-Try: true Change-Id: Ic04b4bebef78e9a3f8b8dde4bace78ce74e43d66 Reviewed-on: https://skia-review.googlesource.com/106165 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Derek Sollenberger <djsollen@google.com>
88 lines
2.2 KiB
Bash
Executable File
88 lines
2.2 KiB
Bash
Executable File
#! /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.
|
|
|
|
If SKQP_EXTRA_MODELS is non-empty, assets unneeded by the CTS tests will be
|
|
included for experimental mode.
|
|
|
|
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")/../.."
|
|
|
|
|
|
git clean -fxd platform_tools/android/apps/skqp
|
|
|
|
python tools/skqp/download_model
|
|
if [ -z "$SKQP_EXTRA_MODELS" ]; then
|
|
python tools/skqp/remove_unneeded_assets
|
|
fi
|
|
|
|
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/
|
|
|