1*b7893ccfSSadaf Ebrahimi#!/bin/bash 2*b7893ccfSSadaf Ebrahimi 3*b7893ccfSSadaf Ebrahimi# Copyright 2017 The Android Open Source Project 4*b7893ccfSSadaf Ebrahimi# 5*b7893ccfSSadaf Ebrahimi# Licensed under the Apache License, Version 2.0 (the "License"); 6*b7893ccfSSadaf Ebrahimi# you may not use this file except in compliance with the License. 7*b7893ccfSSadaf Ebrahimi# You may obtain a copy of the License at 8*b7893ccfSSadaf Ebrahimi# 9*b7893ccfSSadaf Ebrahimi# http://www.apache.org/licenses/LICENSE-2.0 10*b7893ccfSSadaf Ebrahimi# 11*b7893ccfSSadaf Ebrahimi# Unless required by applicable law or agreed to in writing, software 12*b7893ccfSSadaf Ebrahimi# distributed under the License is distributed on an "AS IS" BASIS, 13*b7893ccfSSadaf Ebrahimi# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*b7893ccfSSadaf Ebrahimi# See the License for the specific language governing permissions and 15*b7893ccfSSadaf Ebrahimi# limitations under the License. 16*b7893ccfSSadaf Ebrahimi 17*b7893ccfSSadaf Ebrahimiif [ -z "${ANDROID_SDK_HOME}" ]; 18*b7893ccfSSadaf Ebrahimithen echo "Please set ANDROID_SDK_HOME, exiting"; exit 1; 19*b7893ccfSSadaf Ebrahimielse echo "ANDROID_SDK_HOME is ${ANDROID_SDK_HOME}"; 20*b7893ccfSSadaf Ebrahimifi 21*b7893ccfSSadaf Ebrahimi 22*b7893ccfSSadaf Ebrahimiif [ -z "${ANDROID_NDK_HOME}" ]; 23*b7893ccfSSadaf Ebrahimithen echo "Please set ANDROID_NDK_HOME, exiting"; exit 1; 24*b7893ccfSSadaf Ebrahimielse echo "ANDROID_NDK_HOME is ${ANDROID_NDK_HOME}"; 25*b7893ccfSSadaf Ebrahimifi 26*b7893ccfSSadaf Ebrahimi 27*b7893ccfSSadaf Ebrahimiif [[ $(uname) == "Linux" ]]; then 28*b7893ccfSSadaf Ebrahimi cores=$(nproc) || echo 4 29*b7893ccfSSadaf Ebrahimielif [[ $(uname) == "Darwin" ]]; then 30*b7893ccfSSadaf Ebrahimi cores=$(sysctl -n hw.ncpu) || echo 4 31*b7893ccfSSadaf Ebrahimifi 32*b7893ccfSSadaf Ebrahimi 33*b7893ccfSSadaf Ebrahimifunction findtool() { 34*b7893ccfSSadaf Ebrahimi if [[ ! $(type -t $1) ]]; then 35*b7893ccfSSadaf Ebrahimi echo Command $1 not found, see ../BUILD.md; 36*b7893ccfSSadaf Ebrahimi exit 1; 37*b7893ccfSSadaf Ebrahimi fi 38*b7893ccfSSadaf Ebrahimi} 39*b7893ccfSSadaf Ebrahimi 40*b7893ccfSSadaf Ebrahimi# Check for dependencies 41*b7893ccfSSadaf Ebrahimifindtool aapt 42*b7893ccfSSadaf Ebrahimifindtool zipalign 43*b7893ccfSSadaf Ebrahimifindtool jarsigner 44*b7893ccfSSadaf Ebrahimi 45*b7893ccfSSadaf Ebrahimiset -ev 46*b7893ccfSSadaf Ebrahimi 47*b7893ccfSSadaf EbrahimiLAYER_BUILD_DIR=$PWD 48*b7893ccfSSadaf EbrahimiDEMO_BUILD_DIR=$PWD/../demos/android 49*b7893ccfSSadaf Ebrahimiecho LAYER_BUILD_DIR="${LAYER_BUILD_DIR}" 50*b7893ccfSSadaf Ebrahimiecho DEMO_BUILD_DIR="${DEMO_BUILD_DIR}" 51*b7893ccfSSadaf Ebrahimi 52*b7893ccfSSadaf Ebrahimifunction create_APK() { 53*b7893ccfSSadaf Ebrahimi aapt package -f -M AndroidManifest.xml -I "$ANDROID_SDK_HOME/platforms/android-26/android.jar" -S res -F bin/$1-unaligned.apk bin/libs 54*b7893ccfSSadaf Ebrahimi # update this logic to detect if key is already there. If so, use it, otherwise create it. 55*b7893ccfSSadaf Ebrahimi jarsigner -verbose -keystore ~/.android/debug.keystore -storepass android -keypass android bin/$1-unaligned.apk androiddebugkey 56*b7893ccfSSadaf Ebrahimi zipalign -f 4 bin/$1-unaligned.apk bin/$1.apk 57*b7893ccfSSadaf Ebrahimi} 58*b7893ccfSSadaf Ebrahimi 59*b7893ccfSSadaf Ebrahimi# 60*b7893ccfSSadaf Ebrahimi# build layers 61*b7893ccfSSadaf Ebrahimi# 62*b7893ccfSSadaf Ebrahimi./update_external_sources_android.sh --no-build 63*b7893ccfSSadaf Ebrahimindk-build -j $cores 64*b7893ccfSSadaf Ebrahimi 65*b7893ccfSSadaf Ebrahimi# 66*b7893ccfSSadaf Ebrahimi# build VulkanLayerValidationTests APK 67*b7893ccfSSadaf Ebrahimi# 68*b7893ccfSSadaf Ebrahimimkdir -p bin/libs/lib 69*b7893ccfSSadaf Ebrahimicp -r $LAYER_BUILD_DIR/libs/* $LAYER_BUILD_DIR/bin/libs/lib/ 70*b7893ccfSSadaf Ebrahimicreate_APK VulkanLayerValidationTests 71*b7893ccfSSadaf Ebrahimi 72*b7893ccfSSadaf Ebrahimiecho Builds succeeded 73*b7893ccfSSadaf Ebrahimiexit 0 74