mirror of
https://github.com/irungentoo/toxcore.git
synced 2024-03-22 13:30:51 +08:00
b0f6331856
* Bump the targeted API on armeabi and x86 to 19 - Starting with the r24 NDK, Jelly Bean (APIs 16, 17, and 18) is no longer supported. * Build libsodium w/ --disable-pie - Workaround for `ld: error: relocation R_386_PC32 cannot be used against symbol 'crypto_auth_hmacsha512_init'; recompile with -fPIC`
66 lines
1.3 KiB
Bash
Executable File
66 lines
1.3 KiB
Bash
Executable File
#!/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=19
|
|
;;
|
|
arm64-v8a)
|
|
TARGET=aarch64-linux-android
|
|
NDK_API=21
|
|
;;
|
|
x86)
|
|
TARGET=i686-linux-android
|
|
NDK_API=19
|
|
;;
|
|
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 --disable-pie
|
|
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 .
|