| #!/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 --no-build |
| ./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 |