xref: /aosp_15_r20/external/vulkan-validation-layers/build-android/build_all.sh (revision b7893ccf7851cd6a48cc5a1e965257d8a5cdcc70)
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