diff options
Diffstat (limited to '')
-rwxr-xr-x | android/compile.sh | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/android/compile.sh b/android/compile.sh new file mode 100755 index 000000000..c10731a7f --- /dev/null +++ b/android/compile.sh @@ -0,0 +1,100 @@ +#!/bin/bash + +# This script cross-compiles cuberite for the android platform. It uses +# the following enviroment variables +# CMAKE: Should be the path to a cmake executable of version 3.7+ +# NDK: Should be the path to the android ndk root +# (optional) TYPE: either Release or Debug, sets the build type +# (optional) THREADS: The number of threads to use, default 4 + +function usage() { + echo "Usage: NDK=<path-to-ndk> CMAKE=<cmake-binary> $0 (clean|<ABI>)"; + exit 1 +} + +BASEDIR="$(realpath $(dirname $0))" +SELF="./$(basename $0)" + +# Clean doesn't need CMAKE and NDK, so it's handled here +if [ "$1" == "clean" ]; then + cd $BASEDIR + rm -rf ../android-build/ + exit 0 +fi + +if [ -z "$CMAKE" -o -z "$NDK" ];then + usage; +fi + +# CMake wants absolute path +CMAKE="$(realpath $CMAKE)" +NDK="$(realpath $NDK)" + +if [ -z "$TYPE" ]; then + TYPE="Release" +fi + +if [ -z "$THREADS" ]; then + THREADS="4" +fi + +cd $BASEDIR + +case "$1" in + armeabi) + APILEVEL=16 + ;; + + armeabi-v7a) + APILEVEL=16 + ;; + + arm64-v8a) + APILEVEL=21 + ;; + + mips) + APILEVEL=16 + ;; + + mips64) + APILEVEL=21 + ;; + + x86) + APILEVEL=16 + ;; + + x86_64) + APILEVEL=21 + ;; + + all) + echo "Packing server.zip" + mkdir -p Server + cd ../Server + zip -r ../android/Server/server.zip * + + for arch in armeabi armeabi-v7a arm64-v8a mips mips64 x86 x86_64; do + echo "Doing ... $arch ..." && \ + cd $BASEDIR && \ + "$SELF" clean && \ + "$SELF" "$arch" && \ + cd Server && \ + zip "$arch".zip Cuberite && \ + rm Cuberite + done + + echo "Done! The built zip files await you in the Server/ directory" + exit; + ;; + + *) + usage; + ;; +esac + +mkdir -p ../android-build +cd ../android-build +"$CMAKE" ../android -DCMAKE_SYSTEM_NAME=Android -DCMAKE_SYSTEM_VERSION="$APILEVEL" -DCMAKE_BUILD_TYPE="$TYPE" -DCMAKE_ANDROID_ARCH_ABI="$1" -DCMAKE_ANDROID_NDK="$NDK" +make -j "$THREADS" |