Fixes for NDK r5b and r5-crystax.beta3

This commit is contained in:
pelya
2011-06-07 18:43:46 +03:00
parent d8f2263a7f
commit edde6790b6
7 changed files with 40 additions and 27 deletions

View File

@@ -7,6 +7,7 @@
>
<application android:label="@string/app_name"
android:icon="@drawable/icon"
android:debuggable="true"
>
<activity android:name=".MainActivity"
android:label="@string/app_name"

View File

@@ -1,6 +1,7 @@
APP_PROJECT_PATH := $(call my-dir)/..
APP_STL := gnustl_static
APP_CFLAGS := -O2 -DNDEBUG -g # arm-linux-androideabi-4.4.3 crashes in -O0 mode on SDL sources
include jni/Settings.mk

View File

@@ -45,6 +45,11 @@ echo $APP_MODULES | xargs -n 1 echo | while read LIB ; do
done
)
if [ -n "$CRYSTAX_WCHAR" ]; then
CRYSTAX_WCHAR_INCLUDE=-I$NDK/sources/wchar-support/include
CRYSTAX_WCHAR_LIB="$NDK/sources/wchar-support/libs/armeabi/libwchar_static.a"
fi
CFLAGS="\
-fexceptions -frtti \
-fpic -ffunction-sections -funwind-tables -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi \
@@ -55,7 +60,8 @@ CFLAGS="\
-I$NDK/sources/cxx-stl/gnu-libstdc++/include \
-I$NDK/sources/cxx-stl/gnu-libstdc++/libs/armeabi/include \
-I$LOCAL_PATH/../sdl-1.2/include \
`echo $APP_MODULES | sed \"s@\([-a-zA-Z0-9_.]\+\)@-I$LOCAL_PATH/../\1/include@g\"`"
`echo $APP_MODULES | sed \"s@\([-a-zA-Z0-9_.]\+\)@-I$LOCAL_PATH/../\1/include@g\"` \
$CRYSTAX_WCHAR_INCLUDE"
LDFLAGS="\
-fexceptions -frtti \
@@ -71,7 +77,8 @@ $NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libz.so \
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libstdc++.a \
-L$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib \
-L$LOCAL_PATH/../../obj/local/armeabi -Wl,--no-undefined -Wl,-z,noexecstack \
-Wl,-rpath-link=$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib -lsupc++ -lsdl_fake_stdout -Wl,-u,_SDL_ANDROID_initFakeStdout"
-Wl,-rpath-link=$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib -lsupc++ -lsdl_fake_stdout -Wl,-u,_SDL_ANDROID_initFakeStdout \
$CRYSTAX_WCHAR_LIB"
env PATH=$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin:$LOCAL_PATH:$PATH \
CFLAGS="$CFLAGS" \

View File

@@ -13,8 +13,12 @@ LOCAL_PATH=`dirname $0`
LOCAL_PATH=`cd $LOCAL_PATH && pwd`
SCRIPT=setEnvironment-r4b.sh
if [ -n "`echo $NDK | grep android-ndk-r5b`" ]; then
CRYSTAX_WCHAR=
if [ -n "`echo $NDK | grep 'android-ndk-r5b\|android-ndk-r5-crystax-1.beta3'`" ]; then
SCRIPT=setEnvironment-r5b.sh
if [ -n "`echo $NDK | grep 'android-ndk-r5-crystax-1.beta3'`" ]; then
CRYSTAX_WCHAR=1
fi
fi
$LOCAL_PATH/$SCRIPT "$@"
env CRYSTAX_WCHAR=$CRYSTAX_WCHAR $LOCAL_PATH/$SCRIPT "$@"

View File

@@ -13,28 +13,28 @@ Index: global.h
//filesystem version 3 causes problems (and it's default as of boost 1.46)
#define BOOST_FILESYSTEM_VERSION 2
typedef boost::uint64_t ui64; //unsigned int 64 bits (8 bytes)
@@ -623,7 +627,25 @@
@@ -622,8 +626,25 @@
public:
CLogger& operator<<(std::ostream& (*fun)(std::ostream&))
{
+#ifdef ANDROID
+ std::ostringstream os;
+ os << fun;
+ int loglevel = ANDROID_LOG_INFO;
+ switch(lvl) {
+ case 0: loglevel = ANDROID_LOG_INFO; break;
+ case 1: loglevel = ANDROID_LOG_FATAL; break;
+ case 2: loglevel = ANDROID_LOG_ERROR; break;
+ case 3: loglevel = ANDROID_LOG_WARN; break;
+ case 4: loglevel = ANDROID_LOG_INFO; break;
+ case 5: loglevel = ANDROID_LOG_DEBUG; break;
+ case 6: case -2: loglevel = ANDROID_LOG_VERBOSE; break;
+ };
+ __android_log_print(loglevel, "VCMI", "%s", os.str().c_str());
+#endif
if(lvl < CONSOLE_LOGGING_LEVEL)
+ {
+#ifdef ANDROID
+ std::ostringstream os;
+ os << fun;
+ int loglevel = ANDROID_LOG_INFO;
+ switch(lvl) {
+ case 0: loglevel = ANDROID_LOG_INFO; break;
+ case 1: loglevel = ANDROID_LOG_FATAL; break;
+ case 2: loglevel = ANDROID_LOG_ERROR; break;
+ case 3: loglevel = ANDROID_LOG_WARN; break;
+ case 4: loglevel = ANDROID_LOG_INFO; break;
+ case 5: loglevel = ANDROID_LOG_DEBUG; break;
+ case 6: case -2: loglevel = ANDROID_LOG_VERBOSE; break;
+ };
+ __android_log_print(loglevel, "VCMI", "%s", os.str().c_str());
+#else
std::cout << fun;
+#endif
+ }
if((lvl < FILE_LOGGING_LEVEL) && logfile)
*logfile << fun;

View File

@@ -3,9 +3,7 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := $(notdir $(LOCAL_PATH))
#ifeq ($(LOCAL_MODULE),boost)
#$(error Do not use "boost" as dependency, use boost_filesystem, boost_iostreams etc)
#endif
ifneq ($(LOCAL_MODULE),boost)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
@@ -22,3 +20,5 @@ $(abspath $(LOCAL_PATH)/../../obj/local/armeabi-v7a/lib$(LOCAL_MODULE).a): $(LOC
.PHONY: OVERRIDE_CUSTOM_LIB
OVERRIDE_CUSTOM_LIB:
endif
endif

View File

@@ -3,9 +3,7 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := $(notdir $(LOCAL_PATH))
#ifeq ($(LOCAL_MODULE),ffmpeg)
#$(error Do not use "ffmpeg" as dependency, use avformat, swscale etc)
#endif
ifneq ($(LOCAL_MODULE),ffmpeg)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
@@ -22,3 +20,5 @@ $(abspath $(LOCAL_PATH)/../../obj/local/armeabi-v7a/lib$(LOCAL_MODULE).so): $(LO
.PHONY: OVERRIDE_CUSTOM_LIB
OVERRIDE_CUSTOM_LIB:
endif
endif