diff --git a/build/android/Makefile b/build/android/Makefile index 17b53db79..7e6ce5ad3 100644 --- a/build/android/Makefile +++ b/build/android/Makefile @@ -31,7 +31,7 @@ TARGET_LIBDIR = armeabi-v7a TARGET_TOOLCHAIN = arm-linux-androideabi TARGET_CFLAGS_ADDON = -mfpu=vfpv3-d16 -march=armv7-a -Ofast -fdata-sections -ffunction-sections -fvisibility=hidden -flto TARGET_CXXFLAGS_ADDON = $(TARGET_CFLAGS_ADDON) -TARGET_LDFLAGS_ADDON = -Wl,--no-warn-mismatch,--gc-sections +TARGET_LDFLAGS_ADDON = -Wl,--no-warn-mismatch,--gc-sections,--icf=safe CROSS_PREFIX = arm-linux-androideabi- ################################################################################ @@ -53,7 +53,7 @@ CROSS_PREFIX = arm-linux-androideabi- ASSETS_TIMESTAMP = $(ANDR_ROOT)/deps/assets_timestamp LEVELDB_URL = https://github.com/google/leveldb/archive/v$(LEVELDB_VER).zip -LEVELDB_VER = 1.19 +LEVELDB_VER = 1.20 LEVELDB_DIR = $(ANDR_ROOT)/deps/leveldb LEVELDB_LIB = $(LEVELDB_DIR)/out-static/libleveldb.a LEVELDB_TIMESTAMP = $(LEVELDB_DIR)/timestamp @@ -81,7 +81,7 @@ IRRLICHT_TIMESTAMP = $(IRRLICHT_DIR)/timestamp IRRLICHT_TIMESTAMP_INT = $(ANDR_ROOT)/deps/irrlicht_timestamp IRRLICHT_URL_HTTP = https://github.com/zaki/irrlicht/archive/$(IRRLICHT_COMMIT).zip -CURL_VERSION = 7.52.1 +CURL_VERSION = 7.53.1 CURL_DIR = $(ANDR_ROOT)/deps/curl CURL_LIB = $(CURL_DIR)/lib/.libs/libcurl.a CURL_TIMESTAMP = $(CURL_DIR)/timestamp @@ -95,14 +95,14 @@ FREETYPE_TIMESTAMP = $(FREETYPE_DIR)/timestamp FREETYPE_TIMESTAMP_INT = $(ANDR_ROOT)/deps/freetype_timestamp FREETYPE_URL_HTTP = https://sourceforge.net/projects/freetype/files/freetype2/$(FREETYPE_VERSION)/freetype-$(FREETYPE_VERSION).tar.bz2 -ICONV_VERSION = 1.14 +ICONV_VERSION = 1.15 ICONV_DIR = $(ANDR_ROOT)/deps/libiconv ICONV_URL_HTTP = https://ftp.gnu.org/pub/gnu/libiconv/libiconv-$(ICONV_VERSION).tar.gz INTL_DIR = $(ANDR_ROOT)/deps/libintl/ INTL_URL_HTTP = https://github.com/j-jorge/libintl-lite/archive/master.tar.gz -SQLITE3_VERSION = 3160200 +SQLITE3_VERSION = 3170000 SQLITE3_DIR = $(ANDR_ROOT)/deps/sqlite SQLITE3_URL = https://www.sqlite.org/2017/sqlite-amalgamation-$(SQLITE3_VERSION).zip @@ -189,8 +189,9 @@ $(OPENAL_LIB): $(OPENAL_TIMESTAMP) ${ANDROID_NDK}/ndk-build NDEBUG=${NDEBUG} \ NDK_MODULE_PATH=${NDK_MODULE_PATH} APP_ABI=${TARGET_ABI} \ TARGET_ARCH_ABI=${TARGET_ABI} APP_PLATFORM=${APP_PLATFORM} \ - PRIVATE_CC=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}-${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}gcc \ - PRIVATE_CXX=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}-${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}g++ \ + NDK_TOOLCHAIN_VERSION=${COMPILER_VERSION} \ + PRIVATE_CC=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}-${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}-gcc \ + PRIVATE_CXX=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}-${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}-g++ \ TARGET_CFLAGS+="${TARGET_CFLAGS_ADDON}" \ TARGET_LDFLAGS+="${TARGET_LDFLAGS_ADDON}" \ TARGET_CXXFLAGS+="${TARGET_CXXFLAGS_ADDON}" || exit 1; \ @@ -234,8 +235,9 @@ $(VORBIS_LIB): $(VORBIS_TIMESTAMP) ${ANDROID_NDK}/ndk-build NDEBUG=${NDEBUG} \ NDK_MODULE_PATH=${NDK_MODULE_PATH} \ APP_ABI=${TARGET_ABI} APP_PLATFORM=${APP_PLATFORM} \ - PRIVATE_CC=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}-${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}gcc \ - PRIVATE_CXX=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}-${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}g++ \ + NDK_TOOLCHAIN_VERSION=${COMPILER_VERSION} \ + PRIVATE_CC=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}-${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}-gcc \ + PRIVATE_CXX=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}-${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}-g++ \ TARGET_CFLAGS+="${TARGET_CFLAGS_ADDON}" \ TARGET_LDFLAGS+="${TARGET_LDFLAGS_ADDON}" \ TARGET_CXXFLAGS+="${TARGET_CXXFLAGS_ADDON}" || exit 1; \ @@ -372,7 +374,6 @@ iconv_download : mv libiconv-${ICONV_VERSION} libiconv; \ cd libiconv; \ patch -p1 < ${ANDR_ROOT}/patches/libiconv_android.patch; \ - patch -p1 < ${ANDR_ROOT}/patches/libiconv_stdio.patch; \ export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-iconv; \ ${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \ --toolchain=${TARGET_TOOLCHAIN}-${COMPILER_VERSION} \ @@ -446,8 +447,9 @@ $(IRRLICHT_LIB): $(IRRLICHT_TIMESTAMP) $(FREETYPE_LIB) ${ANDROID_NDK}/ndk-build NDEBUG=${NDEBUG} \ NDK_MODULE_PATH=${NDK_MODULE_PATH} \ APP_ABI=${TARGET_ABI} APP_PLATFORM=${APP_PLATFORM} \ - PRIVATE_CC=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}-${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}gcc \ - PRIVATE_CXX=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}-${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}g++ \ + NDK_TOOLCHAIN_VERSION=${COMPILER_VERSION} \ + PRIVATE_CC=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}-${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}-gcc \ + PRIVATE_CXX=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}-${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}-g++ \ TARGET_CFLAGS+="${TARGET_CFLAGS_ADDON}" \ TARGET_LDFLAGS+="${TARGET_LDFLAGS_ADDON}" \ TARGET_CXXFLAGS+="${TARGET_CXXFLAGS_ADDON}" || exit 1; \ @@ -677,13 +679,10 @@ apk: local.properties $(IRRLICHT_LIB) $(CURL_LIB) $(LEVELDB_LIB) $(LUAJIT_LIB) \ +@${ANDROID_NDK}/ndk-build NDK_MODULE_PATH=${NDK_MODULE_PATH} \ GPROF=${GPROF} APP_ABI=${TARGET_ABI} \ APP_PLATFORM=${APP_PLATFORM} \ - PRIVATE_CC=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}-${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}gcc \ - PRIVATE_CXX=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}-${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}g++ \ NDK_TOOLCHAIN_VERSION=${COMPILER_VERSION} \ - TARGET_LIBDIR=${TARGET_LIBDIR} \ - TARGET_CFLAGS+="${TARGET_CFLAGS_ADDON}" \ - TARGET_LDFLAGS+="${TARGET_LDFLAGS_ADDON}" \ - TARGET_CXXFLAGS+="${TARGET_CXXFLAGS_ADDON}" || exit 1; \ + PRIVATE_CC=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}-${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}-gcc \ + PRIVATE_CXX=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}-${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}-g++ \ + NDK_TOOLCHAIN_VERSION=${COMPILER_VERSION} || exit 1; \ if [ ! -e ${APP_ROOT}/jniLibs ]; then \ ln -s ${ANDR_ROOT}/libs ${APP_ROOT}/jniLibs || exit 1; \ fi; \ diff --git a/build/android/jni/Android.mk b/build/android/jni/Android.mk index 25308df4e..58f7deae7 100644 --- a/build/android/jni/Android.mk +++ b/build/android/jni/Android.mk @@ -305,15 +305,15 @@ LOCAL_SRC_FILES += jni/src/jsoncpp/json/jsoncpp.cpp LOCAL_CFLAGS += -Wno-multichar -D_ANDROID -DLIBDIR -DBUILDING_LIBICONV LOCAL_C_INCLUDES += \ - deps/libiconv/include \ - deps/libiconv/lib \ - deps/libiconv/libcharset/include \ + deps/libiconv/include \ + deps/libiconv/lib \ + deps/libiconv/libcharset/include LOCAL_SRC_FILES += \ - deps/libiconv/lib/iconv.c \ - deps/libiconv/libcharset/lib/localcharset.c \ + deps/libiconv/lib/iconv.c \ + deps/libiconv/libcharset/lib/localcharset.c -LOCAL_STATIC_LIBRARIES := Irrlicht LevelDB freetype curl intl LuaJIT openal vorbis android_native_app_glue $(PROFILER_LIBS) +LOCAL_STATIC_LIBRARIES := Irrlicht LevelDB freetype curl LuaJIT openal vorbis android_native_app_glue $(PROFILER_LIBS) LOCAL_LDLIBS := -lEGL -lGLESv1_CM -lGLESv2 -landroid -lOpenSLES diff --git a/build/android/jni/Application.mk b/build/android/jni/Application.mk index a91b47f80..beaf412fe 100644 --- a/build/android/jni/Application.mk +++ b/build/android/jni/Application.mk @@ -1,3 +1,3 @@ APP_MODULES := multicraft APP_STL := gnustl_static -APP_CPPFLAGS += -fexceptions -frtti -std=c++11 +APP_CPPFLAGS += -fexceptions -frtti diff --git a/build/android/patches/irrlicht-optimization.patch b/build/android/patches/irrlicht-optimization.patch index 9230f465a..7a4fc04ca 100644 --- a/build/android/patches/irrlicht-optimization.patch +++ b/build/android/patches/irrlicht-optimization.patch @@ -8,12 +8,12 @@ +ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) +LOCAL_CFLAGS += -mfpu=vfpv4 -march=armv7-a -Ofast -fdata-sections -ffunction-sections -fvisibility=hidden -flto +LOCAL_CXXFLAGS += -mfpu=vfpv4 -march=armv7-a -Ofast -fdata-sections -ffunction-sections -fvisibility=hidden -flto -+LOCAL_LDFLAGS += -Wl,--no-warn-mismatch,--gc-sections ++LOCAL_LDFLAGS += -Wl,--no-warn-mismatch,--gc-sections,--icf=safe +endif +ifeq ($(TARGET_ARCH_ABI),x86) +LOCAL_CFLAGS += -mhard-float -Ofast -fdata-sections -ffunction-sections -fmodulo-sched -fmodulo-sched-allow-regmoves -fvisibility=hidden -fno-stack-protector +LOCAL_CXXFLAGS += -Ofast -fdata-sections -ffunction-sections -fmodulo-sched -fmodulo-sched-allow-regmoves -fvisibility=hidden -+LOCAL_LDFLAGS = -Wl,--no-warn-mismatch,--gc-sections ++LOCAL_LDFLAGS = -Wl,--no-warn-mismatch,--gc-sections,--icf=safe +LOCAL_DISABLE_FATAL_LINKER_WARNINGS := true +endif endif diff --git a/build/android/patches/libiconv_android.patch b/build/android/patches/libiconv_android.patch index 4eca0a4ef..9190b2de0 100644 --- a/build/android/patches/libiconv_android.patch +++ b/build/android/patches/libiconv_android.patch @@ -1,39 +1,39 @@ ---- a/libcharset/lib/localcharset.c 2015-06-10 11:55:25.933870724 +0200 -+++ b/libcharset/lib/localcharset.c 2015-06-10 11:55:39.578063493 +0200 -@@ -47,7 +47,7 @@ +--- libiconv/libcharset/lib/localcharset.c.orig 2016-12-02 14:55:29.000000000 +0200 ++++ libiconv/libcharset/lib/localcharset.c 2017-03-12 23:48:39.113259171 +0200 +@@ -46,7 +46,7 @@ - #if !defined WIN32_NATIVE + #if !defined WINDOWS_NATIVE # include -# if HAVE_LANGINFO_CODESET +# if HAVE_LANGINFO_CODESET && !(defined __ANDROID__) # include # else # if 0 /* see comment below */ -@@ -124,7 +124,7 @@ get_charset_aliases (void) +@@ -128,7 +128,7 @@ cp = charset_aliases; if (cp == NULL) { --#if !(defined DARWIN7 || defined VMS || defined WIN32_NATIVE || defined __CYGWIN__) -+#if !(defined DARWIN7 || defined VMS || defined WIN32_NATIVE || defined __CYGWIN__ || defined __ANDROID__) +-#if !(defined DARWIN7 || defined VMS || defined WINDOWS_NATIVE || defined __CYGWIN__ || defined OS2) ++#if !(defined DARWIN7 || defined VMS || defined WINDOWS_NATIVE || defined __CYGWIN__ || defined OS2 || defined __ANDROID__) const char *dir; const char *base = "charset.alias"; char *file_name; -@@ -338,6 +338,9 @@ get_charset_aliases (void) +@@ -342,6 +342,9 @@ "CP54936" "\0" "GB18030" "\0" "CP65001" "\0" "UTF-8" "\0"; # endif +# if defined __ANDROID__ + cp = "*" "\0" "UTF-8" "\0"; +# endif - #endif - - charset_aliases = cp; -@@ -361,7 +364,7 @@ locale_charset (void) + # if defined OS2 + /* To avoid the troubles of installing a separate file in the same + directory as the DLL and of retrieving the DLL's directory at +@@ -395,7 +398,7 @@ const char *codeset; const char *aliases; --#if !(defined WIN32_NATIVE || defined OS2) -+#if !(defined WIN32_NATIVE || defined OS2 || defined __ANDROID__) +-#if !(defined WINDOWS_NATIVE || defined OS2) ++#if !(defined WINDOWS_NATIVE || defined OS2 || defined __ANDROID__) # if HAVE_LANGINFO_CODESET diff --git a/src/game.cpp b/src/game.cpp index ce6056963..30b51f34f 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -4580,7 +4580,7 @@ void Game::updateGui(float *statustext_time, const RunStats &stats, guitext->setText(utf8_to_wide(os.str()).c_str()); guitext->setVisible(true); } else { - guitext->setVisible(false); + guitext->setVisible(true); } if (guitext->isVisible()) { diff --git a/src/touchscreengui.cpp b/src/touchscreengui.cpp index 5624f70a4..b47b3764a 100644 --- a/src/touchscreengui.cpp +++ b/src/touchscreengui.cpp @@ -948,7 +948,7 @@ inline void TouchScreenGUI::storePointerPos(size_t ID, v2s32 pos) inline v2s32 TouchScreenGUI::loadPointerPos(size_t ID) { std::map::const_iterator it = m_pointerpos.find(ID); - if (it == m_pointerpos.cend()) + if (it == m_pointerpos.end()) return v2s32(0, 0); return it->second; }