72 lines
2.0 KiB
Bash
Executable File
72 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# Copyright (c) 2018 Google LLC.
|
|
#
|
|
# 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.
|
|
#
|
|
# Linux Build Script.
|
|
|
|
# Fail on any error.
|
|
set -e
|
|
# Display commands being run.
|
|
set -x
|
|
|
|
# This is required to run any git command in the docker since owner will
|
|
# have changed between the clone environment, and the docker container.
|
|
# Marking the root of the repo as safe for ownership changes.
|
|
git config --global --add safe.directory $ROOT_DIR
|
|
|
|
. /bin/using.sh # Declare the bash `using` function for configuring toolchains.
|
|
|
|
cd $ROOT_DIR
|
|
|
|
function clean_dir() {
|
|
dir=$1
|
|
if [[ -d "$dir" ]]; then
|
|
rm -fr "$dir"
|
|
fi
|
|
mkdir "$dir"
|
|
}
|
|
|
|
# Get source for dependencies, as specified in the DEPS file
|
|
/usr/bin/python3 utils/git-sync-deps --treeless
|
|
|
|
using ndk-r25c
|
|
|
|
clean_dir "$ROOT_DIR/build"
|
|
cd "$ROOT_DIR/build"
|
|
|
|
function do_ndk_build () {
|
|
echo $(date): Starting ndk-build $@...
|
|
$ANDROID_NDK_HOME/ndk-build \
|
|
-C $ROOT_DIR/android_test \
|
|
NDK_PROJECT_PATH=. \
|
|
NDK_LIBS_OUT=./libs \
|
|
NDK_APP_OUT=./app \
|
|
V=1 \
|
|
SPVTOOLS_LOCAL_PATH=$ROOT_DIR/third_party/spirv-tools \
|
|
SPVHEADERS_LOCAL_PATH=$ROOT_DIR/third_party/spirv-headers \
|
|
-j8 $@
|
|
}
|
|
|
|
# Builds all the ABIs (see APP_ABI in jni/Application.mk)
|
|
do_ndk_build
|
|
|
|
# Check that libshaderc_combined builds
|
|
# Explicitly set each ABI, otherwise it will only pick x86.
|
|
# It seems to be the behaviour when specifying an explicit target.
|
|
for abi in x86 x86_64 armeabi-v7a arm64-v8a; do
|
|
do_ndk_build APP_ABI=$abi libshaderc_combined
|
|
done
|
|
|
|
echo $(date): ndk-build completed.
|