skia2/tools/skqp/make_universal_apk
Hal Canary 84fdd4fcba SkQP: optionally build make_universal_apk with debug on.
* Respects SKQP_DEBUG=true.
  * Also, be more selective about cleaning. (So I can test on master.)
  * Also, stop using `gradlew --daemon`, which was getting confused
    when switching back and forth build types.

No-Try:true
Change-Id: Id93f77ab7831a82cad9a3a64dbb8a93af4757d57
Reviewed-on: https://skia-review.googlesource.com/108222
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Stephan Altmueller <stephana@google.com>
2018-02-27 20:42:29 +00:00

98 lines
2.5 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")/../.."
(
cd platform_tools/android/apps
git clean -fxd skqp/build \
skqp/src/main/assets/gmkb \
skqp/src/main/assets/resources \
skqp/src/main/libs \
.gradle build viewer/build
)
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
if [ "$SKQP_DEBUG" ]; then
BUILD=out/skqp-${ARCH}-debug
python tools/skqp/generate_gn_args $BUILD "$ANDROID_NDK" --arch "$ARCH" --debug
else
BUILD=out/skqp-$ARCH
python tools/skqp/generate_gn_args $BUILD "$ANDROID_NDK" --arch "$ARCH"
fi
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 -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/