blob: 276af04c3df42efa52f64b40011f7d9e03c1d9e0 [file] [log] [blame]
#! /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