From 371f21fb350a29ad1ade4ffaf38c07ca1742cd63 Mon Sep 17 00:00:00 2001 From: paradust7 <102263465+paradust7@users.noreply.github.com> Date: Sat, 21 May 2022 08:48:40 -0700 Subject: [PATCH] Fixes to Android build + option to turn LuaJIT on/off for testing purposes (#12334) --- .../net/minetest/minetest/GameActivity.java | 4 ++ android/native/jni/Android.mk | 60 ++++++++++++++++++- 2 files changed, 61 insertions(+), 3 deletions(-) diff --git a/android/app/src/main/java/net/minetest/minetest/GameActivity.java b/android/app/src/main/java/net/minetest/minetest/GameActivity.java index 46fc9b1de..eeb90ea7f 100644 --- a/android/app/src/main/java/net/minetest/minetest/GameActivity.java +++ b/android/app/src/main/java/net/minetest/minetest/GameActivity.java @@ -34,10 +34,14 @@ import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; +import androidx.annotation.Keep; import androidx.appcompat.app.AlertDialog; import java.util.Objects; +// Native code finds these methods by name (see porting_android.cpp). +// This annotation prevents the minifier/Proguard from mangling them. +@Keep public class GameActivity extends NativeActivity { static { System.loadLibrary("c++_shared"); diff --git a/android/native/jni/Android.mk b/android/native/jni/Android.mk index f8ca74d3c..b522042de 100644 --- a/android/native/jni/Android.mk +++ b/android/native/jni/Android.mk @@ -1,6 +1,7 @@ LOCAL_PATH := $(call my-dir)/.. #LOCAL_ADDRESS_SANITIZER:=true +#USE_BUILTIN_LUA:=true include $(CLEAR_VARS) LOCAL_MODULE := Curl @@ -42,11 +43,15 @@ LOCAL_MODULE := Irrlicht LOCAL_SRC_FILES := deps/$(APP_ABI)/Irrlicht/libIrrlichtMt.a include $(PREBUILT_STATIC_LIBRARY) +ifndef USE_BUILTIN_LUA + include $(CLEAR_VARS) LOCAL_MODULE := LuaJIT LOCAL_SRC_FILES := deps/$(APP_ABI)/LuaJIT/libluajit.a include $(PREBUILT_STATIC_LIBRARY) +endif + include $(CLEAR_VARS) LOCAL_MODULE := OpenAL LOCAL_SRC_FILES := deps/$(APP_ABI)/OpenAL-Soft/libopenal.a @@ -92,7 +97,6 @@ LOCAL_CFLAGS += \ -DUSE_CURL=1 \ -DUSE_SOUND=1 \ -DUSE_LEVELDB=0 \ - -DUSE_LUAJIT=1 \ -DUSE_GETTEXT=1 \ -DVERSION_MAJOR=${versionMajor} \ -DVERSION_MINOR=${versionMinor} \ @@ -100,6 +104,12 @@ LOCAL_CFLAGS += \ -DVERSION_EXTRA=${versionExtra} \ $(GPROF_DEF) +ifdef USE_BUILTIN_LUA + LOCAL_CFLAGS += -DUSE_LUAJIT=0 +else + LOCAL_CFLAGS += -DUSE_LUAJIT=1 +endif + ifdef NDEBUG LOCAL_CFLAGS += -DNDEBUG=1 endif @@ -120,12 +130,19 @@ LOCAL_C_INCLUDES := \ deps/$(APP_ABI)/Irrlicht/include \ deps/$(APP_ABI)/Gettext/include \ deps/$(APP_ABI)/Iconv/include \ - deps/$(APP_ABI)/LuaJIT/include \ deps/$(APP_ABI)/OpenAL-Soft/include \ deps/$(APP_ABI)/SQLite/include \ deps/$(APP_ABI)/Vorbis/include \ deps/$(APP_ABI)/Zstd/include +ifdef USE_BUILTIN_LUA + LOCAL_C_INCLUDES += \ + ../../lib/lua/src \ + ../../lib/bitop +else + LOCAL_C_INCLUDES += deps/$(APP_ABI)/LuaJIT/include +endif + LOCAL_SRC_FILES := \ $(wildcard ../../src/client/*.cpp) \ $(wildcard ../../src/client/*/*.cpp) \ @@ -207,6 +224,41 @@ LOCAL_SRC_FILES := \ ../../src/voxel.cpp \ ../../src/voxelalgorithms.cpp +# Built-in Lua +ifdef USE_BUILTIN_LUA + LOCAL_SRC_FILES += \ + ../../lib/lua/src/lapi.c \ + ../../lib/lua/src/lauxlib.c \ + ../../lib/lua/src/lbaselib.c \ + ../../lib/lua/src/lcode.c \ + ../../lib/lua/src/ldblib.c \ + ../../lib/lua/src/ldebug.c \ + ../../lib/lua/src/ldo.c \ + ../../lib/lua/src/ldump.c \ + ../../lib/lua/src/lfunc.c \ + ../../lib/lua/src/lgc.c \ + ../../lib/lua/src/linit.c \ + ../../lib/lua/src/liolib.c \ + ../../lib/lua/src/llex.c \ + ../../lib/lua/src/lmathlib.c \ + ../../lib/lua/src/lmem.c \ + ../../lib/lua/src/loadlib.c \ + ../../lib/lua/src/lobject.c \ + ../../lib/lua/src/lopcodes.c \ + ../../lib/lua/src/loslib.c \ + ../../lib/lua/src/lparser.c \ + ../../lib/lua/src/lstate.c \ + ../../lib/lua/src/lstring.c \ + ../../lib/lua/src/lstrlib.c \ + ../../lib/lua/src/ltable.c \ + ../../lib/lua/src/ltablib.c \ + ../../lib/lua/src/ltm.c \ + ../../lib/lua/src/lundump.c \ + ../../lib/lua/src/lvm.c \ + ../../lib/lua/src/lzio.c \ + ../../lib/bitop/bit.c +endif + # GMP LOCAL_SRC_FILES += ../../lib/gmp/mini-gmp.c @@ -218,12 +270,14 @@ LOCAL_STATIC_LIBRARIES += \ Freetype \ Iconv libcharset \ Irrlicht \ - LuaJIT \ OpenAL \ Gettext \ SQLite3 \ Vorbis libvorbisfile libogg \ Zstd +ifndef USE_BUILTIN_LUA + LOCAL_STATIC_LIBRARIES += LuaJIT +endif LOCAL_STATIC_LIBRARIES += android_native_app_glue $(PROFILER_LIBS) LOCAL_LDLIBS := -lEGL -lGLESv1_CM -lGLESv2 -landroid -lOpenSLES -- 2.44.0