aboutsummaryrefslogtreecommitdiff
path: root/build/android/native/jni
diff options
context:
space:
mode:
authorMaksim <MoNTE48@mail.ua>2020-04-15 16:27:40 +0200
committerGitHub <noreply@github.com>2020-04-15 16:27:40 +0200
commit62ae7adab2bebde04864c12543caefbffab24963 (patch)
tree1cad2b08c94c2de26a39124f3b3dd0d513cbcc99 /build/android/native/jni
parent8ae8c1600a66c724565ce7a70e0e5f542f12e38e (diff)
downloadminetest-62ae7adab2bebde04864c12543caefbffab24963.tar.gz
minetest-62ae7adab2bebde04864c12543caefbffab24963.tar.bz2
minetest-62ae7adab2bebde04864c12543caefbffab24963.zip
Android: add Android Studio support, completely redone java part (#9066)
Diffstat (limited to 'build/android/native/jni')
-rw-r--r--build/android/native/jni/Android.mk218
-rw-r--r--build/android/native/jni/Application.mk32
2 files changed, 250 insertions, 0 deletions
diff --git a/build/android/native/jni/Android.mk b/build/android/native/jni/Android.mk
new file mode 100644
index 000000000..a5cb099e6
--- /dev/null
+++ b/build/android/native/jni/Android.mk
@@ -0,0 +1,218 @@
+LOCAL_PATH := $(call my-dir)/..
+
+#LOCAL_ADDRESS_SANITIZER:=true
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := Curl
+LOCAL_SRC_FILES := deps/Android/Curl/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libcurl.a
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := Freetype
+LOCAL_SRC_FILES := deps/Android/Freetype/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libfreetype.a
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := Irrlicht
+LOCAL_SRC_FILES := deps/Android/Irrlicht/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libIrrlicht.a
+include $(PREBUILT_STATIC_LIBRARY)
+
+#include $(CLEAR_VARS)
+#LOCAL_MODULE := LevelDB
+#LOCAL_SRC_FILES := deps/Android/LevelDB/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libleveldb.a
+#include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := LuaJIT
+LOCAL_SRC_FILES := deps/Android/LuaJIT/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libluajit.a
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := mbedTLS
+LOCAL_SRC_FILES := deps/Android/mbedTLS/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libmbedtls.a
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := mbedx509
+LOCAL_SRC_FILES := deps/Android/mbedTLS/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libmbedx509.a
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := mbedcrypto
+LOCAL_SRC_FILES := deps/Android/mbedTLS/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libmbedcrypto.a
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := OpenAL
+LOCAL_SRC_FILES := deps/Android/OpenAL-Soft/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libopenal.a
+include $(PREBUILT_STATIC_LIBRARY)
+
+# You can use `OpenSSL and Crypto` instead `mbedTLS mbedx509 mbedcrypto`,
+#but it increase APK size on ~0.7MB
+#include $(CLEAR_VARS)
+#LOCAL_MODULE := OpenSSL
+#LOCAL_SRC_FILES := deps/Android/OpenSSL/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libssl.a
+#include $(PREBUILT_STATIC_LIBRARY)
+
+#include $(CLEAR_VARS)
+#LOCAL_MODULE := Crypto
+#LOCAL_SRC_FILES := deps/Android/OpenSSL/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libcrypto.a
+#include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := Vorbis
+LOCAL_SRC_FILES := deps/Android/Vorbis/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libvorbis.a
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := Minetest
+
+LOCAL_CFLAGS += \
+ -DJSONCPP_NO_LOCALE_SUPPORT \
+ -DHAVE_TOUCHSCREENGUI \
+ -DENABLE_GLES=1 \
+ -DUSE_CURL=1 \
+ -DUSE_SOUND=1 \
+ -DUSE_FREETYPE=1 \
+ -DUSE_LEVELDB=0 \
+ -DUSE_LUAJIT=1 \
+ -DVERSION_MAJOR=${versionMajor} \
+ -DVERSION_MINOR=${versionMinor} \
+ -DVERSION_PATCH=${versionPatch} \
+ -DVERSION_EXTRA=${versionExtra} \
+ $(GPROF_DEF)
+
+ifdef NDEBUG
+ LOCAL_CFLAGS += -DNDEBUG=1
+endif
+
+ifdef GPROF
+ GPROF_DEF := -DGPROF
+ PROFILER_LIBS := android-ndk-profiler
+ LOCAL_CFLAGS += -pg
+endif
+
+LOCAL_C_INCLUDES := \
+ ../../../src \
+ ../../../src/script \
+ ../../../lib/gmp \
+ ../../../lib/jsoncpp \
+ deps/Android/Curl/include \
+ deps/Android/Freetype/include \
+ deps/Android/Irrlicht/include \
+ deps/Android/LevelDB/include \
+ deps/Android/libiconv/include \
+ deps/Android/libiconv/libcharset/include \
+ deps/Android/LuaJIT/src \
+ deps/Android/OpenAL-Soft/include \
+ deps/Android/sqlite \
+ deps/Android/Vorbis/include
+
+LOCAL_SRC_FILES := \
+ $(wildcard ../../../src/client/*.cpp) \
+ $(wildcard ../../../src/client/*/*.cpp) \
+ $(wildcard ../../../src/content/*.cpp) \
+ ../../../src/database/database.cpp \
+ ../../../src/database/database-dummy.cpp \
+ ../../../src/database/database-files.cpp \
+ ../../../src/database/database-sqlite3.cpp \
+ $(wildcard ../../../src/gui/*.cpp) \
+ $(wildcard ../../../src/irrlicht_changes/*.cpp) \
+ $(wildcard ../../../src/mapgen/*.cpp) \
+ $(wildcard ../../../src/network/*.cpp) \
+ $(wildcard ../../../src/script/*.cpp) \
+ $(wildcard ../../../src/script/*/*.cpp) \
+ $(wildcard ../../../src/server/*.cpp) \
+ $(wildcard ../../../src/threading/*.cpp) \
+ $(wildcard ../../../src/util/*.c) \
+ $(wildcard ../../../src/util/*.cpp) \
+ ../../../src/ban.cpp \
+ ../../../src/chat.cpp \
+ ../../../src/clientiface.cpp \
+ ../../../src/collision.cpp \
+ ../../../src/content_mapnode.cpp \
+ ../../../src/content_nodemeta.cpp \
+ ../../../src/convert_json.cpp \
+ ../../../src/craftdef.cpp \
+ ../../../src/debug.cpp \
+ ../../../src/defaultsettings.cpp \
+ ../../../src/emerge.cpp \
+ ../../../src/environment.cpp \
+ ../../../src/face_position_cache.cpp \
+ ../../../src/filesys.cpp \
+ ../../../src/gettext.cpp \
+ ../../../src/httpfetch.cpp \
+ ../../../src/hud.cpp \
+ ../../../src/inventory.cpp \
+ ../../../src/inventorymanager.cpp \
+ ../../../src/itemdef.cpp \
+ ../../../src/itemstackmetadata.cpp \
+ ../../../src/light.cpp \
+ ../../../src/log.cpp \
+ ../../../src/main.cpp \
+ ../../../src/map.cpp \
+ ../../../src/map_settings_manager.cpp \
+ ../../../src/mapblock.cpp \
+ ../../../src/mapnode.cpp \
+ ../../../src/mapsector.cpp \
+ ../../../src/metadata.cpp \
+ ../../../src/modchannels.cpp \
+ ../../../src/nameidmapping.cpp \
+ ../../../src/nodedef.cpp \
+ ../../../src/nodemetadata.cpp \
+ ../../../src/nodetimer.cpp \
+ ../../../src/noise.cpp \
+ ../../../src/objdef.cpp \
+ ../../../src/object_properties.cpp \
+ ../../../src/pathfinder.cpp \
+ ../../../src/player.cpp \
+ ../../../src/porting.cpp \
+ ../../../src/porting_android.cpp \
+ ../../../src/profiler.cpp \
+ ../../../src/raycast.cpp \
+ ../../../src/reflowscan.cpp \
+ ../../../src/remoteplayer.cpp \
+ ../../../src/rollback.cpp \
+ ../../../src/rollback_interface.cpp \
+ ../../../src/serialization.cpp \
+ ../../../src/server.cpp \
+ ../../../src/serverenvironment.cpp \
+ ../../../src/serverlist.cpp \
+ ../../../src/settings.cpp \
+ ../../../src/staticobject.cpp \
+ ../../../src/texture_override.cpp \
+ ../../../src/tileanimation.cpp \
+ ../../../src/tool.cpp \
+ ../../../src/translation.cpp \
+ ../../../src/version.cpp \
+ ../../../src/voxel.cpp \
+ ../../../src/voxelalgorithms.cpp
+
+# LevelDB backend is disabled
+# ../../../src/database/database-leveldb.cpp
+
+# GMP
+LOCAL_SRC_FILES += ../../../lib/gmp/mini-gmp.c
+
+# JSONCPP
+LOCAL_SRC_FILES += ../../../lib/jsoncpp/jsoncpp.cpp
+
+# iconv
+LOCAL_SRC_FILES += \
+ deps/Android/libiconv/lib/iconv.c \
+ deps/Android/libiconv/libcharset/lib/localcharset.c
+
+# SQLite3
+LOCAL_SRC_FILES += deps/Android/sqlite/sqlite3.c
+
+LOCAL_STATIC_LIBRARIES += Curl Freetype Irrlicht OpenAL mbedTLS mbedx509 mbedcrypto Vorbis LuaJIT android_native_app_glue $(PROFILER_LIBS) #LevelDB
+#OpenSSL Crypto
+
+LOCAL_LDLIBS := -lEGL -lGLESv1_CM -lGLESv2 -landroid -lOpenSLES
+
+include $(BUILD_SHARED_LIBRARY)
+
+ifdef GPROF
+$(call import-module,android-ndk-profiler)
+endif
+$(call import-module,android/native_app_glue)
diff --git a/build/android/native/jni/Application.mk b/build/android/native/jni/Application.mk
new file mode 100644
index 000000000..82f0148f0
--- /dev/null
+++ b/build/android/native/jni/Application.mk
@@ -0,0 +1,32 @@
+APP_PLATFORM := ${APP_PLATFORM}
+APP_ABI := ${TARGET_ABI}
+APP_STL := c++_shared
+NDK_TOOLCHAIN_VERSION := clang
+APP_SHORT_COMMANDS := true
+APP_MODULES := Minetest
+
+APP_CPPFLAGS := -Ofast -fvisibility=hidden -fexceptions -Wno-deprecated-declarations -Wno-extra-tokens
+
+ifeq ($(APP_ABI),armeabi-v7a)
+APP_CPPFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb
+endif
+
+#ifeq ($(APP_ABI),x86)
+#APP_CPPFLAGS += -march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32 -funroll-loops
+#endif
+
+ifndef NDEBUG
+APP_CPPFLAGS := -g -D_DEBUG -O0 -fno-omit-frame-pointer -fexceptions
+endif
+
+APP_CFLAGS := $(APP_CPPFLAGS) -Wno-parentheses-equality #-Werror=shorten-64-to-32
+APP_CXXFLAGS := $(APP_CPPFLAGS) -frtti -std=gnu++17
+APP_LDFLAGS := -Wl,--no-warn-mismatch,--gc-sections,--icf=safe
+
+ifeq ($(APP_ABI),arm64-v8a)
+APP_LDFLAGS := -Wl,--no-warn-mismatch,--gc-sections
+endif
+
+ifndef NDEBUG
+APP_LDFLAGS :=
+endif