2023-07-25 11:53:09 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
set -eu
|
|
|
|
|
|
|
|
# Set up environment
|
|
|
|
NDK=$ANDROID_NDK_HOME
|
|
|
|
|
|
|
|
ABI=${1:-"armeabi-v7a"}
|
|
|
|
|
|
|
|
case $ABI in
|
|
|
|
armeabi-v7a)
|
|
|
|
TARGET=armv7a-linux-androideabi
|
2024-09-19 13:45:12 +02:00
|
|
|
NDK_API=21
|
2023-07-25 11:53:09 +02:00
|
|
|
;;
|
|
|
|
arm64-v8a)
|
|
|
|
TARGET=aarch64-linux-android
|
|
|
|
NDK_API=21
|
|
|
|
;;
|
|
|
|
x86)
|
|
|
|
TARGET=i686-linux-android
|
2024-09-19 13:45:12 +02:00
|
|
|
NDK_API=21
|
2023-07-25 11:53:09 +02:00
|
|
|
;;
|
|
|
|
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
|
2023-10-10 19:37:39 +02:00
|
|
|
./configure --prefix="$PREFIX" --host="$TARGET" --with-sysroot="$SYSROOT" --disable-shared --disable-pie
|
2023-07-25 11:53:09 +02:00
|
|
|
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 .
|