tomato/.github/scripts/cmake-android

66 lines
1.2 KiB
Plaintext
Raw Normal View History

#!/bin/bash
set -eu
# Set up environment
NDK=$ANDROID_NDK_HOME
ABI=${1:-"armeabi-v7a"}
case $ABI in
armeabi-v7a)
TARGET=armv7a-linux-androideabi
NDK_API=16
;;
arm64-v8a)
TARGET=aarch64-linux-android
NDK_API=21
;;
x86)
TARGET=i686-linux-android
NDK_API=16
;;
x86_64)
TARGET=x86_64-linux-android
NDK_API=21
;;
*)
exit 1
;;
esac
rm -rf _android_prefix
mkdir -p _android_prefix
PREFIX=$PWD/_android_prefix
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64
SYSROOT=$TOOLCHAIN/sysroot
export CC="$TOOLCHAIN/bin/$TARGET$NDK_API"-clang
export LDFLAGS=-static-libstdc++
export PKG_CONFIG_PATH="$PREFIX"/lib/pkgconfig
# Build libsodium
if [ ! -d libsodium ]; then
git clone --branch=1.0.18 https://github.com/jedisct1/libsodium.git
fi
cd libsodium
git clean -ffdx
autoreconf -fi
./configure --prefix="$PREFIX" --host="$TARGET" --with-sysroot="$SYSROOT" --disable-shared
make -j"$(nproc)" install
cd ..
# Build c-toxcore
rm -rf _build
mkdir -p _build
cd _build
cmake .. \
-DBUILD_TOXAV=OFF \
-DBOOTSTRAP_DAEMON=OFF \
-DCMAKE_TOOLCHAIN_FILE="$NDK/build/cmake/android.toolchain.cmake" \
-DANDROID_ABI="$ABI" \
-DCMAKE_INSTALL_PREFIX="$PREFIX" \
-DCMAKE_PREFIX_PATH="$PREFIX"
cmake --build .