I'v efailed to integrate my STLPort so now I'm using GNU stdc++ with RTTI and exceptions
This commit is contained in:
28
build.sh
28
build.sh
@@ -1,13 +1,8 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Set here your own NDK path if needed
|
||||
# export PATH=$PATH:~/src/endless_space/android-ndk-r4b
|
||||
# Set environment to CrystaX NDK with RTTI and exceptions instead of original NDK
|
||||
# export PATH=$PATH:~/src/endless_space/android-ndk-r4-crystax/ndk-build
|
||||
# export PATH=$PATH:~/src/endless_space/android-ndk-r5b
|
||||
NDKBUILDPATH=$PATH
|
||||
if grep "AppUseCrystaXToolchain=y" AndroidAppSettings.cfg > /dev/null ; then
|
||||
NDKBUILDPATH=`which ndk-build | sed 's@/[^/]*/ndk-build@/android-ndk-r4-crystax@'`:$PATH
|
||||
fi
|
||||
export `grep "AppFullName=" AndroidAppSettings.cfg`
|
||||
if ( grep "package $AppFullName;" project/src/Globals.java > /dev/null && [ "`readlink AndroidAppSettings.cfg`" -ot "project/src/Globals.java" ] ) ; then true ; else
|
||||
./ChangeAppSettings.sh -a
|
||||
@@ -15,5 +10,24 @@ if ( grep "package $AppFullName;" project/src/Globals.java > /dev/null && [ "`re
|
||||
touch project/src/Globals.java
|
||||
fi
|
||||
|
||||
cd project && env PATH=$NDKBUILDPATH nice -n19 ndk-build -j4 V=1 -k && ant `test -n "$1" && echo release || echo debug` && test -z "$1" && cd bin && adb install -r DemoActivity-debug.apk
|
||||
MYARCH=linux-x86
|
||||
if uname -s | grep -i "linux" > /dev/null ; then
|
||||
MYARCH=linux-x86
|
||||
fi
|
||||
if uname -s | grep -i "darwin" > /dev/null ; then
|
||||
MYARCH=darwin-x86
|
||||
fi
|
||||
if uname -s | grep -i "windows" > /dev/null ; then
|
||||
MYARCH=windows-x86
|
||||
fi
|
||||
|
||||
cd project && env PATH=$NDKBUILDPATH nice -n19 ndk-build -j4 V=1 && \
|
||||
{ grep "CustomBuildScript=y" ../AndroidAppSettings.cfg > /dev/null && \
|
||||
rm obj/local/armeabi/libapplication.so && \
|
||||
cp jni/application/src/libapplication.so obj/local/armeabi && \
|
||||
cp jni/application/src/libapplication.so libs/armeabi && \
|
||||
`which ndk-build | sed 's@/ndk-build@@'`/toolchains/arm-linux-androideabi-4.4.3/prebuilt/$MYARCH/bin/arm-linux-androideabi-strip --strip-unneeded libs/armeabi/libapplication.so \
|
||||
|| true ; } && \
|
||||
ant `test -n "$1" && echo release || echo debug` && \
|
||||
test -z "$1" && cd bin && adb install -r DemoActivity-debug.apk
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
APP_PROJECT_PATH := $(call my-dir)/..
|
||||
|
||||
APP_STL := system
|
||||
APP_STL := gnustl_static
|
||||
|
||||
include jni/Settings.mk
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ endif
|
||||
|
||||
LOCAL_CFLAGS :=
|
||||
|
||||
ifeq ($(CRYSTAX_TOOLCHAIN),)
|
||||
ifeq ($(CRYSTAX_TOOLCHAIN)$(NDK_R5_TOOLCHAIN),)
|
||||
LOCAL_CFLAGS += -I$(LOCAL_PATH)/../stlport/stlport
|
||||
endif
|
||||
|
||||
@@ -44,8 +44,6 @@ LOCAL_STATIC_LIBRARIES := $(filter $(APP_AVAILABLE_STATIC_LIBS), $(COMPILED_LIBR
|
||||
LOCAL_STATIC_LIBRARIES += stlport
|
||||
|
||||
LOCAL_LDLIBS := -lGLESv1_CM -ldl -llog -lz
|
||||
ifneq ($(NDK_R5_TOOLCHAIN),)
|
||||
endif
|
||||
|
||||
LOCAL_LDFLAGS := -Lobj/local/armeabi
|
||||
|
||||
@@ -85,8 +83,7 @@ LOCAL_PATH_SDL_APPLICATION := $(LOCAL_PATH)
|
||||
|
||||
.NOTPARALLEL: $(realpath $(LOCAL_PATH)/../../obj/local/armeabi/libapplication.so) $(LOCAL_PATH)/src/libapplication.so
|
||||
|
||||
$(shell rm $(LOCAL_PATH)/src/libapplication.so) # Enforce rebuilding
|
||||
# $(shell rm $(LOCAL_PATH)/../../obj/local/armeabi/*.so) # libapplication.so may try to link with wrong libraries, prevent that
|
||||
$(shell rm -f $(LOCAL_PATH)/src/libapplication.so) # Enforce rebuilding
|
||||
|
||||
$(LOCAL_PATH)/src/libapplication.so: $(LOCAL_PATH)/src/AndroidBuild.sh $(LOCAL_PATH)/src/AndroidAppSettings.cfg $(APP_LIB_DEPENDS)
|
||||
echo Launching script $(LOCAL_PATH_SDL_APPLICATION)/AndroidBuild.sh
|
||||
|
||||
@@ -18,4 +18,4 @@ fi
|
||||
if [ \! -f openttd/Makefile ] ; then
|
||||
../setEnvironment.sh sh -c "cd openttd && ./configure --host=arm-linux-androideabi --with-sdl --with-freetype=sdl-config --with-png --with-zlib --with-libtimidity=$LOCAL_PATH/../../../obj/local/armeabi/libtimidity.so --with-lzo2=$LOCAL_PATH/../../../obj/local/armeabi/liblzo2.so --prefix-dir='.' --data-dir='' --without-allegro --without-fontconfig --endian=LE"
|
||||
fi
|
||||
../setEnvironment.sh sh -c "cd openttd && make -j1 VERBOSE=1 STRIP='' LIBS='-lsdl-1.2 -llzo2 -lpng -ltimidity -lfreetype -lstlport -lz -lc -lstdc++ -lsupc++'" && cp -f openttd/objs/release/openttd libapplication.so
|
||||
../setEnvironment.sh sh -c "cd openttd && make -j1 VERBOSE=1 STRIP='' LIBS='-lsdl-1.2 -llzo2 -lpng -ltimidity -lfreetype -lz -lc -lstdc++ -lsupc++'" && cp -f openttd/objs/release/openttd libapplication.so
|
||||
|
||||
@@ -54,9 +54,8 @@ CFLAGS="\
|
||||
-march=armv5te -mtune=xscale -msoft-float -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 \
|
||||
-I$NDK/platforms/$PLATFORMVER/arch-arm/usr/include -Wa,--noexecstack \
|
||||
-DANDROID -D__sF=__SDL_fake_stdout -DNDEBUG -O2 -g \
|
||||
-I$NDK/sources/cxx-stl/system/include \
|
||||
-I$NDK/sources/cxx-stl/gnu-libstdc++/include \
|
||||
-I$NDK/sources/cxx-stl/gnu-libstdc++/libs/armeabi/include \
|
||||
-I$LOCAL_PATH/../stlport/stlport \
|
||||
-I$LOCAL_PATH/../sdl-1.2/include \
|
||||
`echo $APP_MODULES | sed \"s@\([-a-zA-Z0-9_.]\+\)@-I$LOCAL_PATH/../\1/include@g\"`"
|
||||
|
||||
@@ -65,13 +64,16 @@ LDFLAGS="\
|
||||
-Wl,-soname,libapplication.so -shared --sysroot=$NDK/platforms/$PLATFORMVER/arch-arm \
|
||||
`echo $APP_SHARED_LIBS | sed \"s@\([-a-zA-Z0-9_.]\+\)@$LOCAL_PATH/../../obj/local/armeabi/lib\1.so@g\"` \
|
||||
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libc.so \
|
||||
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libstdc++.so \
|
||||
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libm.so \
|
||||
-L$LOCAL_PATH/../../obj/local/armeabi -Wl,--no-undefined -Wl,-z,noexecstack \
|
||||
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libGLESv1_CM.so \
|
||||
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libdl.so \
|
||||
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/liblog.so \
|
||||
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libz.so \
|
||||
-L$NDK/sources/cxx-stl/gnu-libstdc++/libs/armeabi -lstdc++ \
|
||||
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libstdc++.a \
|
||||
-L$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib \
|
||||
-lGLESv1_CM -ldl -llog -lz \
|
||||
-Wl,-rpath-link=$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib -lsupc++ \
|
||||
-L$LOCAL_PATH/../../obj/local/armeabi $LOCAL_PATH/../../obj/local/armeabi/libstlport.a"
|
||||
-L$LOCAL_PATH/../../obj/local/armeabi -Wl,--no-undefined -Wl,-z,noexecstack \
|
||||
-Wl,-rpath-link=$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib -lsupc++"
|
||||
|
||||
env PATH=$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin:$LOCAL_PATH:$PATH \
|
||||
CFLAGS="$CFLAGS" \
|
||||
|
||||
@@ -4,7 +4,7 @@ include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := stlport
|
||||
|
||||
ifneq ($(CRYSTAX_TOOLCHAIN),)
|
||||
ifneq ($(CRYSTAX_TOOLCHAIN)$(NDK_R5_TOOLCHAIN),)
|
||||
LOCAL_CPP_EXTENSION := .cpp
|
||||
LOCAL_SRC_FILES := dummy.c
|
||||
else
|
||||
|
||||
@@ -47,13 +47,6 @@ using _STLP_VENDOR_CSTD::malloc;
|
||||
# error Cannot include native new header as new is a macro.
|
||||
# endif
|
||||
|
||||
# ifdef ANDROID
|
||||
# include _STLP_NATIVE_CPP_RUNTIME_HEADER(cstddef)
|
||||
namespace std {
|
||||
using ::ptrdiff_t;
|
||||
using ::size_t;
|
||||
}
|
||||
# endif
|
||||
# include _STLP_NATIVE_CPP_RUNTIME_HEADER(new)
|
||||
|
||||
# if defined (_STLP_BROKEN_BAD_ALLOC_CLASS)
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
|
||||
#define _STLP_PLATFORM "Android"
|
||||
|
||||
#include <features.h>
|
||||
|
||||
// The Android C library is mostly glibc-like
|
||||
#define _STLP_USE_GLIBC 1
|
||||
|
||||
@@ -15,17 +17,19 @@
|
||||
|
||||
// Have pthreads support.
|
||||
#define _PTHREADS
|
||||
#define _STLP_THREADS
|
||||
#define _STLP_PTHREADS
|
||||
|
||||
// Don't have native <cplusplus> headers
|
||||
#define _STLP_HAS_NO_NEW_C_HEADERS 1
|
||||
// #define _STLP_HAS_NO_NEW_C_HEADERS 1
|
||||
// #define _STLP_USE_NEW_C_HEADERS 1
|
||||
// #define _STLP_NO_NEW_NEW_HEADER 1
|
||||
// #define _STLP_NO_NEW_HEADER 1
|
||||
#define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
|
||||
#define _STLP_NO_BAD_ALLOC 1
|
||||
// #define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
|
||||
// #define _STLP_NO_BAD_ALLOC 1
|
||||
// No <exception> headers
|
||||
#define _STLP_NO_EXCEPTION_HEADER 1
|
||||
#define _STLP_OWN_STDEXCEPT 1 // Already inside libsupc++, but we'll define it under different namespace
|
||||
// #define _STLP_NO_EXCEPTION_HEADER 1
|
||||
// #define _STLP_OWN_STDEXCEPT 1 // Already inside libsupc++, but we'll define it under different namespace
|
||||
|
||||
// Don't use wchar.h etc
|
||||
#define _STLP_NO_WCHAR_T 1
|
||||
@@ -73,8 +77,8 @@
|
||||
|
||||
// Define how to include our native headers.
|
||||
#if defined(__ANDROID__) /* NDK r5 */
|
||||
# define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../../../cxx-stl/system/include
|
||||
# define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH ../../../cxx-stl/system/include
|
||||
# define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../../../cxx-stl/gnu-libstdc++/include
|
||||
# define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH ../../../cxx-stl/gnu-libstdc++/include
|
||||
//# warning ("Detected Android NDK r5 or newer")
|
||||
#else /* NDK r4b */
|
||||
# define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../../usr/include
|
||||
|
||||
Reference in New Issue
Block a user