From 92227f79c95f2287eabac58b68b5fdee553b8ed7 Mon Sep 17 00:00:00 2001 From: johnche Date: Wed, 27 Feb 2019 15:38:11 +0800 Subject: [PATCH] add android arm64 support for luajit version --- build/CMakeLists.txt | 2 +- build/make_android_lua53_arm64.sh | 14 +++--- build/make_android_luajit_arm64.sh | 70 ++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+), 8 deletions(-) create mode 100755 build/make_android_luajit_arm64.sh diff --git a/build/CMakeLists.txt b/build/CMakeLists.txt index 74d0916..1f7638d 100644 --- a/build/CMakeLists.txt +++ b/build/CMakeLists.txt @@ -38,7 +38,7 @@ set(LUAJIT_SRC_PATH luajit-2.1.0b3/src) if (USING_LUAJIT) - if (APPLE AND NOT IOS) + if (APPLE AND NOT IOS AND NOT ANDROID) include_directories( ${CMAKE_SOURCE_DIR} lua-5.1.5/src diff --git a/build/make_android_lua53_arm64.sh b/build/make_android_lua53_arm64.sh index 9dae68a..569c6be 100755 --- a/build/make_android_lua53_arm64.sh +++ b/build/make_android_lua53_arm64.sh @@ -1,5 +1,5 @@ if [ -z "$ANDROID_NDK" ]; then - export ANDROID_NDK=~/android-ndk-r16b + export ANDROID_NDK=~/android-ndk-r15c fi mkdir -p build_v7a && cd build_v7a @@ -16,11 +16,11 @@ cmake --build build_v8a --config Release mkdir -p plugin_lua53/Plugins/Android/libs/arm64-v8a/ cp build_v8a/libxlua.so plugin_lua53/Plugins/Android/libs/arm64-v8a/libxlua.so -#mkdir -p build_x86 && cd build_x86 -#cmake -DANDROID_ABI=x86 -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_TOOLCHAIN_NAME=x86-clang3.5 -DANDROID_NATIVE_API_LEVEL=android-9 ../ -#cd .. -#cmake --build build_x86 --config Release -#mkdir -p plugin_lua53/Plugins/Android/libs/x86/ -#cp build_x86/libxlua.so plugin_lua53/Plugins/Android/libs/x86/libxlua.so +mkdir -p build_x86 && cd build_x86 +cmake -DANDROID_ABI=x86 -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_TOOLCHAIN_NAME=x86-clang -DANDROID_NATIVE_API_LEVEL=android-9 ../ +cd .. +cmake --build build_x86 --config Release +mkdir -p plugin_lua53/Plugins/Android/libs/x86/ +cp build_x86/libxlua.so plugin_lua53/Plugins/Android/libs/x86/libxlua.so diff --git a/build/make_android_luajit_arm64.sh b/build/make_android_luajit_arm64.sh new file mode 100755 index 0000000..275306c --- /dev/null +++ b/build/make_android_luajit_arm64.sh @@ -0,0 +1,70 @@ +if [ -z "$ANDROID_NDK" ]; then + export ANDROID_NDK=~/android-ndk-r15c +fi + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +SRCDIR=$DIR/luajit-2.1.0b3 +# ANDROID_NDK=~/android-ndk-r10e + +OS=`uname -s` +PREBUILT_PLATFORM=linux-x86_64 +if [[ "$OS" == "Darwin" ]]; then + PREBUILT_PLATFORM=darwin-x86_64 +fi + +NDKABI=16 + +echo "Building armv7 lib" +NDKVER=$ANDROID_NDK/toolchains/arm-linux-androideabi-4.9 +NDKP=$NDKVER/prebuilt/$PREBUILT_PLATFORM/bin/arm-linux-androideabi- +NDKARCH="-march=armv7-a -mfloat-abi=softfp -Wl,--fix-cortex-a8" +NDKF="--sysroot $ANDROID_NDK/platforms/android-$NDKABI/arch-arm" +cd "$SRCDIR" +make clean +make HOST_CC="gcc -m32" CROSS=$NDKP TARGET_SYS=Linux TARGET_FLAGS="$NDKF $NDKARCH" + +cd "$DIR" +mkdir -p build_lj_v7a && cd build_lj_v7a +cmake -DUSING_LUAJIT=ON -DANDROID_ABI=armeabi-v7a -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_TOOLCHAIN_NAME=arm-linux-androideabi-clang -DANDROID_NATIVE_API_LEVEL=android-9 ../ +cd "$DIR" +cmake --build build_lj_v7a --config Release +mkdir -p plugin_luajit/Plugins/Android/libs/armeabi-v7a/ +cp build_lj_v7a/libxlua.so plugin_luajit/Plugins/Android/libs/armeabi-v7a/libxlua.so + + +echo "Building x86 lib" +NDKVER=$ANDROID_NDK/toolchains/x86-4.9 +NDKP=$NDKVER/prebuilt/$PREBUILT_PLATFORM/bin/i686-linux-android- +NDKF="--sysroot $ANDROID_NDK/platforms/android-$NDKABI/arch-x86" +cd "$SRCDIR" +make clean +make HOST_CC="gcc -m32" CROSS=$NDKP TARGET_SYS=Linux TARGET_FLAGS="$NDKF" + +cd "$DIR" +mkdir -p build_lj_x86 && cd build_lj_x86 +cmake -DUSING_LUAJIT=ON -DANDROID_ABI=x86 -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_TOOLCHAIN_NAME=x86-clang -DANDROID_NATIVE_API_LEVEL=android-9 ../ +cd "$DIR" +cmake --build build_lj_x86 --config Release +mkdir -p plugin_luajit/Plugins/Android/libs/x86/ +cp build_lj_x86/libxlua.so plugin_luajit/Plugins/Android/libs/x86/libxlua.so + +NDKABI=21 + +echo "Building arm64-v8a lib" +NDKVER=$ANDROID_NDK/toolchains/aarch64-linux-android-4.9 +NDKP=$NDKVER/prebuilt/$PREBUILT_PLATFORM/bin/aarch64-linux-android- +NDKARCH="-DLJ_ABI_SOFTFP=0 -DLJ_ARCH_HASFPU=1 -DLUAJIT_ENABLE_GC64=1" +NDKF="--sysroot $ANDROID_NDK/platforms/android-$NDKABI/arch-arm64" +cd "$SRCDIR" +make clean +make HOST_CC="gcc -m64" CROSS=$NDKP TARGET_SYS=Linux TARGET_FLAGS="$NDKF $NDKARCH" + +cd "$DIR" +mkdir -p build_lj_v8a && cd build_lj_v8a +cmake -DUSING_LUAJIT=ON -DANDROID_ABI=arm64-v8a -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_TOOLCHAIN_NAME=arm-linux-androideabi-clang -DANDROID_NATIVE_API_LEVEL=android-9 ../ +cd "$DIR" +cmake --build build_lj_v8a --config Release +mkdir -p plugin_luajit/Plugins/Android/libs/arm64-v8a/ +cp build_lj_v8a/libxlua.so plugin_luajit/Plugins/Android/libs/arm64-v8a/libxlua.so + + -- GitLab