mirror of
https://github.com/luanti-org/luanti.git
synced 2025-11-02 08:15:28 +01:00
Add utf-8 conversion utilities and re-add intlGUIEditBox
This commit is contained in:
@@ -131,6 +131,13 @@ FREETYPE_TIMESTAMP = $(FREETYPE_DIR)timestamp
|
||||
FREETYPE_TIMESTAMP_INT = $(ROOT)/deps/freetype_timestamp
|
||||
FREETYPE_URL_GIT = https://github.com/cdave1/freetype2-android
|
||||
|
||||
ICONV_VERSION = 1.14
|
||||
ICONV_DIR = $(ROOT)/deps/libiconv/
|
||||
ICONV_LIB = $(ICONV_DIR)/iconv.so
|
||||
ICONV_TIMESTAMP = $(ICONV_DIR)timestamp
|
||||
ICONV_TIMESTAMP_INT = $(ROOT)/deps/iconv_timestamp
|
||||
ICONV_URL_HTTP = http://ftp.gnu.org/pub/gnu/libiconv/libiconv-$(ICONV_VERSION).tar.gz
|
||||
|
||||
SQLITE3_FOLDER = sqlite-amalgamation-3080704
|
||||
SQLITE3_URL = http://www.sqlite.org/2014/$(SQLITE3_FOLDER).zip
|
||||
|
||||
@@ -431,6 +438,64 @@ $(FREETYPE_LIB) : $(FREETYPE_TIMESTAMP)
|
||||
clean_freetype :
|
||||
$(RM) -rf ${FREETYPE_DIR}
|
||||
|
||||
$(ICONV_TIMESTAMP) : iconv_download
|
||||
@LAST_MODIF=$$(find ${ICONV_DIR} -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "); \
|
||||
if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \
|
||||
touch ${ICONV_TIMESTAMP}; \
|
||||
fi
|
||||
|
||||
iconv_download :
|
||||
@if [ ! -d ${ICONV_DIR} ] ; then \
|
||||
echo "iconv sources missing, downloading..."; \
|
||||
mkdir -p ${ROOT}/deps; \
|
||||
cd ${ROOT}/deps; \
|
||||
wget ${ICONV_URL_HTTP} || exit 1; \
|
||||
tar -xzf libiconv-${ICONV_VERSION}.tar.gz || exit 1; \
|
||||
rm libiconv-${ICONV_VERSION}.tar.gz; \
|
||||
ln -s libiconv-${ICONV_VERSION} libiconv; \
|
||||
cd ${ICONV_DIR}; \
|
||||
patch -p1 < ${ROOT}/libiconv_android.patch; \
|
||||
patch -p1 < ${ROOT}/libiconv_android_mk.patch; \
|
||||
patch -p1 < ${ROOT}/libiconv_stdio.patch; \
|
||||
cd jni; \
|
||||
ln -s .. src; \
|
||||
fi
|
||||
|
||||
iconv : $(ICONV_LIB)
|
||||
|
||||
$(ICONV_LIB) : $(ICONV_TIMESTAMP)
|
||||
@REFRESH=0; \
|
||||
if [ ! -e ${ICONV_TIMESTAMP_INT} ] ; then \
|
||||
REFRESH=1; \
|
||||
fi; \
|
||||
if [ ! -e ${ICONV_LIB} ] ; then \
|
||||
REFRESH=1; \
|
||||
fi; \
|
||||
if [ ${ICONV_TIMESTAMP} -nt ${ICONV_TIMESTAMP_INT} ] ; then \
|
||||
REFRESH=1; \
|
||||
fi; \
|
||||
if [ $$REFRESH -ne 0 ] ; then \
|
||||
mkdir -p ${ICONV_DIR}; \
|
||||
export PATH=$$PATH:${SDKFOLDER}/platform-tools:${ANDROID_NDK}; \
|
||||
echo "changed timestamp for iconv detected building..."; \
|
||||
cd ${ICONV_DIR}; \
|
||||
./configure; \
|
||||
make; \
|
||||
export NDK_PROJECT_PATH=${ICONV_DIR}; \
|
||||
ndk-build NDEBUG=${NDEBUG} NDK_MODULE_PATH=${NDK_MODULE_PATH} \
|
||||
APP_PLATFORM=${APP_PLATFORM} APP_ABI=${TARGET_ABI} \
|
||||
TARGET_CFLAGS+="${TARGET_CFLAGS_ADDON}" \
|
||||
TARGET_LDFLAGS+="${TARGET_LDFLAGS_ADDON}" \
|
||||
TARGET_CXXFLAGS+="${TARGET_CXXFLAGS_ADDON}" || exit 1; \
|
||||
touch ${ICONV_TIMESTAMP}; \
|
||||
touch ${ICONV_TIMESTAMP_INT}; \
|
||||
else \
|
||||
echo "nothing to be done for iconv"; \
|
||||
fi
|
||||
|
||||
clean_iconv :
|
||||
$(RM) -rf ${ICONV_DIR}
|
||||
|
||||
#Note: Texturehack patch is required for gpu's not supporting color format
|
||||
# correctly. Known bad GPU:
|
||||
# -geforce on emulator
|
||||
@@ -736,7 +801,7 @@ assets : $(ASSETS_TIMESTAMP)
|
||||
clean_assets :
|
||||
@$(RM) -r assets
|
||||
|
||||
apk: $(PATHCFGFILE) assets $(IRRLICHT_LIB) $(CURL_LIB) $(GMP_LIB) $(LEVELDB_TARGET) \
|
||||
apk: $(PATHCFGFILE) assets $(ICONV_LIB) $(IRRLICHT_LIB) $(CURL_LIB) $(GMP_LIB) $(LEVELDB_TARGET) \
|
||||
$(OPENAL_LIB) $(OGG_LIB) prep_srcdir $(ROOT)/jni/src/android_version.h \
|
||||
sqlite3_download
|
||||
@export NDEBUG=$$NDEBUG; $(MAKE) manifest; \
|
||||
@@ -778,7 +843,7 @@ envpaths :
|
||||
|
||||
clean_all :
|
||||
@$(MAKE) clean_apk; \
|
||||
$(MAKE) clean_assets clean_irrlicht clean_leveldb clean_curl clean_openssl \
|
||||
$(MAKE) clean_assets clean_iconv clean_irrlicht clean_leveldb clean_curl clean_openssl \
|
||||
clean_openal clean_ogg clean_gmp clean_manifest; \
|
||||
sleep 1; \
|
||||
$(RM) -r gen libs obj deps bin Debug and_env
|
||||
|
||||
@@ -24,6 +24,11 @@ LOCAL_MODULE := freetype
|
||||
LOCAL_SRC_FILES := deps/freetype2-android/Android/obj/local/$(TARGET_ARCH_ABI)/libfreetype2-static.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := iconv
|
||||
LOCAL_SRC_FILES := deps/libiconv/obj/local/$(TARGET_ARCH_ABI)/libiconv.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := openal
|
||||
LOCAL_SRC_FILES := deps/openal-soft/libs/$(TARGET_LIBDIR)/libopenal.so
|
||||
@@ -97,6 +102,7 @@ LOCAL_C_INCLUDES := \
|
||||
jni/src/json \
|
||||
jni/src/cguittfont \
|
||||
deps/irrlicht/include \
|
||||
deps/libiconv/include \
|
||||
deps/freetype2-android/include \
|
||||
deps/curl/include \
|
||||
deps/openal-soft/jni/OpenAL/include \
|
||||
@@ -153,6 +159,7 @@ LOCAL_SRC_FILES := \
|
||||
jni/src/httpfetch.cpp \
|
||||
jni/src/hud.cpp \
|
||||
jni/src/imagefilters.cpp \
|
||||
jni/src/intlGUIEditBox.cpp \
|
||||
jni/src/inventory.cpp \
|
||||
jni/src/inventorymanager.cpp \
|
||||
jni/src/itemdef.cpp \
|
||||
@@ -346,7 +353,7 @@ LOCAL_SRC_FILES += \
|
||||
LOCAL_SRC_FILES += jni/src/json/jsoncpp.cpp
|
||||
|
||||
LOCAL_SHARED_LIBRARIES := openal ogg vorbis gmp
|
||||
LOCAL_STATIC_LIBRARIES := Irrlicht freetype curl ssl crypto android_native_app_glue $(PROFILER_LIBS)
|
||||
LOCAL_STATIC_LIBRARIES := Irrlicht iconv freetype curl ssl crypto android_native_app_glue $(PROFILER_LIBS)
|
||||
|
||||
ifeq ($(HAVE_LEVELDB), 1)
|
||||
LOCAL_STATIC_LIBRARIES += LevelDB
|
||||
|
||||
39
build/android/libiconv_android.patch
Normal file
39
build/android/libiconv_android.patch
Normal file
@@ -0,0 +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 @@
|
||||
|
||||
#if !defined WIN32_NATIVE
|
||||
# include <unistd.h>
|
||||
-# if HAVE_LANGINFO_CODESET
|
||||
+# if HAVE_LANGINFO_CODESET && !(defined __ANDROID__)
|
||||
# include <langinfo.h>
|
||||
# else
|
||||
# if 0 /* see comment below */
|
||||
@@ -124,7 +124,7 @@ get_charset_aliases (void)
|
||||
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__)
|
||||
const char *dir;
|
||||
const char *base = "charset.alias";
|
||||
char *file_name;
|
||||
@@ -338,6 +338,9 @@ get_charset_aliases (void)
|
||||
"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)
|
||||
const char *codeset;
|
||||
const char *aliases;
|
||||
|
||||
-#if !(defined WIN32_NATIVE || defined OS2)
|
||||
+#if !(defined WIN32_NATIVE || defined OS2 || defined __ANDROID__)
|
||||
|
||||
# if HAVE_LANGINFO_CODESET
|
||||
|
||||
51
build/android/libiconv_android_mk.patch
Normal file
51
build/android/libiconv_android_mk.patch
Normal file
@@ -0,0 +1,51 @@
|
||||
From fe27aae178d65b06d5f4104158343b0d2d33e3f0 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre Zurek <pierrezurek@gmail.com>
|
||||
Date: Sat, 2 Apr 2011 23:11:57 +0200
|
||||
Subject: [PATCH] Added Android.mk.
|
||||
|
||||
This makefile first executes the configure script, that will
|
||||
generate the config.h files necessary to build iconv.
|
||||
---
|
||||
Android.mk | 29 +++++++++++++++++++++++++++++
|
||||
1 file changed, 29 insertions(+)
|
||||
create mode 100644 Android.mk
|
||||
|
||||
diff --git a/jni/Android.mk b/jni/Android.mk
|
||||
new file mode 100644
|
||||
index 0000000..799b22d
|
||||
--- /dev/null
|
||||
+++ b/jni/Android.mk
|
||||
@@ -0,0 +1,32 @@
|
||||
+LOCAL_PATH := $(call my-dir)
|
||||
+include $(CLEAR_VARS)
|
||||
+
|
||||
+LOCAL_ARM_MODE := arm
|
||||
+
|
||||
+LOCAL_SRC_FILES := src/lib/iconv.c \
|
||||
+ src/libcharset/lib/localcharset.c \
|
||||
+ src/lib/relocatable.c
|
||||
+
|
||||
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/src/include \
|
||||
+ $(LOCAL_PATH)/src/libcharset \
|
||||
+ $(LOCAL_PATH)/src/libcharset/include
|
||||
+
|
||||
+LOCAL_CFLAGS := \
|
||||
+ -DLIBDIR="\"c\"" \
|
||||
+ -D_ANDROID \
|
||||
+ -DBUILDING_LIBCHARSET \
|
||||
+ -DBUILDING_LIBICONV \
|
||||
+ -DBUILDING_LIBICONV \
|
||||
+ -DIN_LIBRARY
|
||||
+
|
||||
+LOCAL_MODULE:= iconv
|
||||
+
|
||||
+$(info Configuring iconv...)
|
||||
+COMMAND := $(shell \
|
||||
+ export PATH=$(TOOLCHAIN_INSTALL_DIR)/bin:$$PATH; \
|
||||
+ cd $(LOCAL_PATH); \
|
||||
+ make distclean; \
|
||||
+ ./configure --host="arm-linux-androideabi")
|
||||
+$(info iconv configured.)
|
||||
+
|
||||
+include $(BUILD_STATIC_LIBRARY)
|
||||
+
|
||||
10
build/android/libiconv_stdio.patch
Normal file
10
build/android/libiconv_stdio.patch
Normal file
@@ -0,0 +1,10 @@
|
||||
--- a/srclib/stdio.in.h 2011-08-07 15:42:06.000000000 +0200
|
||||
+++ b/srclib/stdio.in.h 2015-06-10 09:27:58.129056262 +0200
|
||||
@@ -695,7 +696,8 @@ _GL_CXXALIASWARN (gets);
|
||||
/* It is very rare that the developer ever has full control of stdin,
|
||||
so any use of gets warrants an unconditional warning. Assume it is
|
||||
always declared, since it is required by C89. */
|
||||
-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
|
||||
+/*_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");*/
|
||||
+#define gets(a) fgets( a, sizeof(*(a)), stdin)
|
||||
#endif
|
||||
Reference in New Issue
Block a user