Android: Removed all unnecessary dependencies on C++.

C++ is a bit of a minefield on Android. Much functionality still doesn't work, and Android can't decide on which C++ standard library to use, so it provides 3 different ones, all of which are incompatible with each other. (It looks like clang is coming too which will add a new compiler and a 4th standard library.)

As middleware, SDL might be distributed as a binary and intermixed with other projects already using C++. If C++ is intermixed in a bad way, bad things will happen. Removing dependencies on C++ will avoid this problem and downstream users won't have to worry/care.

--HG--
rename : src/core/android/SDL_android.cpp => src/core/android/SDL_android.c
rename : src/main/android/SDL_android_main.cpp => src/main/android/SDL_android_main.c
This commit is contained in:
Eric Wing 2013-07-22 02:51:45 -07:00
parent e3b9fb7542
commit a99edf3519
5 changed files with 343 additions and 285 deletions

View file

@ -22,7 +22,7 @@ LOCAL_SRC_FILES := \
$(wildcard $(LOCAL_PATH)/src/audio/dummy/*.c) \ $(wildcard $(LOCAL_PATH)/src/audio/dummy/*.c) \
$(LOCAL_PATH)/src/atomic/SDL_atomic.c \ $(LOCAL_PATH)/src/atomic/SDL_atomic.c \
$(LOCAL_PATH)/src/atomic/SDL_spinlock.c.arm \ $(LOCAL_PATH)/src/atomic/SDL_spinlock.c.arm \
$(wildcard $(LOCAL_PATH)/src/core/android/*.cpp) \ $(wildcard $(LOCAL_PATH)/src/core/android/*.c) \
$(wildcard $(LOCAL_PATH)/src/cpuinfo/*.c) \ $(wildcard $(LOCAL_PATH)/src/cpuinfo/*.c) \
$(wildcard $(LOCAL_PATH)/src/events/*.c) \ $(wildcard $(LOCAL_PATH)/src/events/*.c) \
$(wildcard $(LOCAL_PATH)/src/file/*.c) \ $(wildcard $(LOCAL_PATH)/src/file/*.c) \

View file

@ -28,10 +28,10 @@ android-project/src/org/libsdl/app/SDLActivity.java
The Java code loads your game code, the SDL shared library, and The Java code loads your game code, the SDL shared library, and
dispatches to native functions implemented in the SDL library: dispatches to native functions implemented in the SDL library:
src/SDL_android.cpp src/SDL_android.c
Your project must include some glue code that starts your main() routine: Your project must include some glue code that starts your main() routine:
src/main/android/SDL_android_main.cpp src/main/android/SDL_android_main.c
================================================================================ ================================================================================

View file

@ -9,7 +9,7 @@ SDL_PATH := ../SDL
LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(SDL_PATH)/include LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(SDL_PATH)/include
# Add your application source files here... # Add your application source files here...
LOCAL_SRC_FILES := $(SDL_PATH)/src/main/android/SDL_android_main.cpp \ LOCAL_SRC_FILES := $(SDL_PATH)/src/main/android/SDL_android_main.c \
YourSourceHere.c YourSourceHere.c
LOCAL_SHARED_LIBRARIES := SDL2 LOCAL_SHARED_LIBRARIES := SDL2

View file

@ -12,10 +12,10 @@
#include <jni.h> #include <jni.h>
// Called before SDL_main() to initialize JNI bindings in SDL library // Called before SDL_main() to initialize JNI bindings in SDL library
extern "C" void SDL_Android_Init(JNIEnv* env, jclass cls); extern void SDL_Android_Init(JNIEnv* env, jclass cls);
// Start up the SDL app // Start up the SDL app
extern "C" void Java_org_libsdl_app_SDLActivity_nativeInit(JNIEnv* env, jclass cls, jobject obj) void Java_org_libsdl_app_SDLActivity_nativeInit(JNIEnv* env, jclass cls, jobject obj)
{ {
/* This interface could expand with ABI negotiation, calbacks, etc. */ /* This interface could expand with ABI negotiation, calbacks, etc. */
SDL_Android_Init(env, cls); SDL_Android_Init(env, cls);