Files
how-to-vulkan/ktx/scripts/build_android.sh
T
2026-06-14 19:09:18 +01:00

61 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
# Copyright 2020 Andreas Atteneder
# SPDX-License-Identifier: Apache-2.0
set -e
# Fallback to arm64-v8a
ANDROID_ABI=${ANDROID_ABI:-'arm64-v8a'}
ASTCENC_ISA=${ASTCENC_ISA:-'ASTCENC_ISA_NONE=ON'}
CONFIGURATION=${CONFIGURATION:-Release}
WERROR=${WERROR:-OFF}
if [ "$CONFIGURATION" = "Debug" ]; then
BUILD_DIR="build-android-$ANDROID_ABI-Debug"
INSTALL_DIR="install-android-debug/$ANDROID_ABI"
else
BUILD_DIR="build-android-$ANDROID_ABI"
INSTALL_DIR="install-android/$ANDROID_ABI"
fi
# You need to set the following environment variables first
# ANDROID_NDK= <Path to Android NDK>
cmake_args=("-G" "Ninja" \
"-B" "$BUILD_DIR" \
"-D" "ANDROID_PLATFORM=android-24" \
"-D" "ANDROID_ABI=$ANDROID_ABI" \
"-D" "ANDROID_NDK=$ANDROID_NDK" \
"-D" "CMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake" \
"-D" "CMAKE_BUILD_TYPE=$CONFIGURATION" \
"-D" "BASISU_SUPPORT_SSE=OFF" \
"-D" "${ASTCENC_ISA}"
"-D" "KTX_FEATURE_TESTS=OFF"
"-D" "KTX_WERROR=$WERROR"
)
config_display="Configure KTX-Software (Android $ANDROID_ABI $CONFIGURATION): "
for arg in "${cmake_args[@]}"; do
case $arg in
"-G") config_display+="Generator=" ;;
"-B") config_display+="Build Dir=" ;;
"-D") ;;
*) config_display+="$arg, " ;;
esac
done
echo ${config_display%??}
cmake . "${cmake_args[@]}"
pushd "$BUILD_DIR"
echo "Build KTX-Software (Android $ANDROID_ABI $CONFIGURATION)"
cmake --build . --config $CONFIGURATION -j
# echo "Test KTX-Software (Android $ANDROID_ABI Release)"
# ctest --output-on-failure -C $CONFIGURATION # --verbose
echo "Install KTX-Software (Android $ANDROID_ABI $CONFIGURATION)"
cmake --install . --config $CONFIGURATION --prefix ../$INSTALL_DIR
popd