blob: e1cada878261dcf53d7f8dedab09605a71146a3b [file] [log] [blame]
#!/bin/bash
# Copyright 2017 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
if [ -z "${ANDROID_SDK_HOME}" ];
then echo "Please set ANDROID_SDK_HOME, exiting"; exit 1;
else echo "ANDROID_SDK_HOME is ${ANDROID_SDK_HOME}";
fi
if [ -z "${ANDROID_NDK_HOME}" ];
then echo "Please set ANDROID_NDK_HOME, exiting"; exit 1;
else echo "ANDROID_NDK_HOME is ${ANDROID_NDK_HOME}";
fi
if [[ $(uname) == "Linux" ]]; then
cores=$(nproc) || echo 4
elif [[ $(uname) == "Darwin" ]]; then
cores=$(sysctl -n hw.ncpu) || echo 4
fi
function findtool() {
if [[ ! $(type -t $1) ]]; then
echo Command $1 not found, see ../BUILD.md;
exit 1;
fi
}
# Check for dependencies
findtool aapt
findtool zipalign
findtool jarsigner
set -ev
LAYER_BUILD_DIR=$PWD
DEMO_BUILD_DIR=$PWD/../demos/android
echo LAYER_BUILD_DIR="${LAYER_BUILD_DIR}"
echo DEMO_BUILD_DIR="${DEMO_BUILD_DIR}"
function create_APK() {
aapt package -f -M AndroidManifest.xml -I "$ANDROID_SDK_HOME/platforms/android-23/android.jar" -S res -F bin/$1-unaligned.apk bin/libs
# update this logic to detect if key is already there. If so, use it, otherwise create it.
jarsigner -verbose -keystore ~/.android/debug.keystore -storepass android -keypass android bin/$1-unaligned.apk androiddebugkey
zipalign -f 4 bin/$1-unaligned.apk bin/$1.apk
}
#
# build layers
#
./update_external_sources_android.sh
./android-generate.sh
ndk-build -j $cores
#
# build VulkanLayerValidationTests APK
#
mkdir -p bin/libs/lib
cp -r $LAYER_BUILD_DIR/libs/* $LAYER_BUILD_DIR/bin/libs/lib/
create_APK VulkanLayerValidationTests
#
# build cube APKs (with and without layers)
#
(
pushd $DEMO_BUILD_DIR
ndk-build -j $cores
# Package one APK without validation layers
mkdir -p $DEMO_BUILD_DIR/cube/bin/libs/lib
cp -r $DEMO_BUILD_DIR/libs/* $DEMO_BUILD_DIR/cube/bin/libs/lib/
cd $DEMO_BUILD_DIR/cube
create_APK cube
# And one with validation layers
mkdir -p $DEMO_BUILD_DIR/cube-with-layers/bin/libs/lib
cp -r $DEMO_BUILD_DIR/libs/* $DEMO_BUILD_DIR/cube-with-layers/bin/libs/lib/
cp -r $LAYER_BUILD_DIR/libs/* $DEMO_BUILD_DIR/cube-with-layers/bin/libs/lib/
cd $DEMO_BUILD_DIR/cube-with-layers
create_APK cube-with-layers
popd
)
#
# build Smoke with layers
#
# TODO
echo Builds succeeded
exit 0