50 lines
1.3 KiB
Bash
50 lines
1.3 KiB
Bash
#!/bin/bash
|
|
|
|
# VavCore Android Unit Tests Build Script
|
|
# This script builds the unit tests using Android NDK
|
|
|
|
set -e
|
|
|
|
echo "=== VavCore Android Unit Tests Build ==="
|
|
|
|
# Configuration
|
|
BUILD_TYPE=${1:-Debug}
|
|
ABI=${2:-arm64-v8a}
|
|
BUILD_DIR="build-${ABI}"
|
|
|
|
echo "Build type: ${BUILD_TYPE}"
|
|
echo "ABI: ${ABI}"
|
|
echo "Build directory: ${BUILD_DIR}"
|
|
|
|
# Check if NDK is available
|
|
if [ -z "$ANDROID_NDK_HOME" ] && [ -z "$ANDROID_NDK_ROOT" ]; then
|
|
echo "Error: ANDROID_NDK_HOME or ANDROID_NDK_ROOT must be set"
|
|
exit 1
|
|
fi
|
|
|
|
NDK_PATH="${ANDROID_NDK_HOME:-$ANDROID_NDK_ROOT}"
|
|
echo "Using NDK: ${NDK_PATH}"
|
|
|
|
# Create build directory
|
|
mkdir -p "${BUILD_DIR}"
|
|
cd "${BUILD_DIR}"
|
|
|
|
# Configure with CMake
|
|
cmake .. \
|
|
-DCMAKE_TOOLCHAIN_FILE="${NDK_PATH}/build/cmake/android.toolchain.cmake" \
|
|
-DANDROID_ABI="${ABI}" \
|
|
-DANDROID_NATIVE_API_LEVEL=29 \
|
|
-DCMAKE_BUILD_TYPE="${BUILD_TYPE}" \
|
|
-G "Ninja"
|
|
|
|
# Build
|
|
cmake --build . --config "${BUILD_TYPE}" -j$(nproc 2>/dev/null || echo 4)
|
|
|
|
echo ""
|
|
echo "=== Build Complete ==="
|
|
echo "Test executable: ${BUILD_DIR}/VavCoreUnitTests"
|
|
echo ""
|
|
echo "To run tests on device:"
|
|
echo " adb push ${BUILD_DIR}/VavCoreUnitTests /data/local/tmp/"
|
|
echo " adb shell chmod +x /data/local/tmp/VavCoreUnitTests"
|
|
echo " adb shell /data/local/tmp/VavCoreUnitTests" |