Przeglądaj źródła

Android compile fixes.

Lasse Öörni 13 lat temu
rodzic
commit
8af8edd603

+ 150 - 129
Android/jni/Android.mk

@@ -1,140 +1,116 @@
-# Container library
-LOCAL_PATH = $(ROOT_PATH)/Engine/Container
+# AngelScript library
+LOCAL_PATH = $(ROOT_PATH)/ThirdParty/AngelScript
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := Container
+LOCAL_MODULE := AngelScript
 
 LOCAL_SRC_FILES := \
     $(subst $(LOCAL_PATH)/,, \
-    $(wildcard $(LOCAL_PATH)/*.cpp))
-
-include $(BUILD_STATIC_LIBRARY)
-
-
-# Math library
-LOCAL_PATH = $(ROOT_PATH)/Engine/Math
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := Math
+    $(wildcard $(LOCAL_PATH)/source/*.cpp) \
+    $(LOCAL_PATH)/source/as_callfunc_arm_gcc.S)
 
 LOCAL_C_INCLUDES := \
-    $(ROOT_PATH)/Engine/Container
-
-LOCAL_SRC_FILES := \
-    $(subst $(LOCAL_PATH)/,, \
-    $(wildcard $(LOCAL_PATH)/*.cpp))
+    $(LOCAL_PATH)/include
 
 include $(BUILD_STATIC_LIBRARY)
 
 
-# Core library
-LOCAL_PATH = $(ROOT_PATH)/Engine/Core
+# Bullet library
+LOCAL_PATH = $(ROOT_PATH)/ThirdParty/Bullet
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := Core
+LOCAL_MODULE := Bullet
 
-LOCAL_C_INCLUDES := \
-    $(ROOT_PATH)/Engine/Container \
-    $(ROOT_PATH)/Engine/Math \
-    
 LOCAL_SRC_FILES := \
     $(subst $(LOCAL_PATH)/,, \
-    $(wildcard $(LOCAL_PATH)/*.cpp))
-
-include $(BUILD_STATIC_LIBRARY)
-
-
-# Graphics library
-LOCAL_PATH = $(ROOT_PATH)/Engine/Graphics
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := Graphics
+    $(wildcard $(LOCAL_PATH)/src/BulletCollision/CollisionDispatch/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/src/BulletCollision/CollisionShapes/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/src/BulletCollision/Gimpact/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/src/BulletCollision/NarrowPhaseCollision/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/src/BulletDynamics/Character/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/src/BulletDynamics/ConstraintSolver/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/src/BulletDynamics/Dynamics/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/src/BulletDynamics/Vehicle/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/src/BulletSoftBody/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/src/LinearMath/*.cpp))
 
 LOCAL_C_INCLUDES := \
-    $(ROOT_PATH)/Engine/Container \
-    $(ROOT_PATH)/Engine/Core \
-    $(ROOT_PATH)/Engine/IO \
-    $(ROOT_PATH)/Engine/Math \
-    $(ROOT_PATH)/Engine/Resource \
-    $(ROOT_PATH)/Engine/Scene \
-    $(ROOT_PATH)/ThirdParty/GLee \
-    $(ROOT_PATH)/ThirdParty/SDL/include \
-
-LOCAL_SRC_FILES := \
-    $(subst $(LOCAL_PATH)/,, \
-    $(wildcard $(LOCAL_PATH)/*.cpp) \
-    $(wildcard $(LOCAL_PATH)/OpenGL/*.cpp))
-
-LOCAL_CFLAGS += -Wno-invalid-offsetof
+    $(LOCAL_PATH)/src
 
 include $(BUILD_STATIC_LIBRARY)
 
 
-# IO library
-LOCAL_PATH = $(ROOT_PATH)/Engine/IO
+# FreeType library
+LOCAL_PATH = $(ROOT_PATH)/ThirdParty/FreeType
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := IO
-
-LOCAL_C_INCLUDES := \
-    $(ROOT_PATH)/Engine/Container \
-    $(ROOT_PATH)/Engine/Core \
-    $(ROOT_PATH)/Engine/Math \
+LOCAL_MODULE := FreeType
 
 LOCAL_SRC_FILES := \
     $(subst $(LOCAL_PATH)/,, \
-    $(wildcard $(LOCAL_PATH)/*.cpp))
-
-include $(BUILD_STATIC_LIBRARY)
-
-
-# Resource library
-LOCAL_PATH = $(ROOT_PATH)/Engine/Resource
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := Resource
+    $(LOCAL_PATH)/src/autofit/autofit.c \
+    $(LOCAL_PATH)/src/base/ftbase.c \
+    $(LOCAL_PATH)/src/base/ftbbox.c \
+    $(LOCAL_PATH)/src/base/ftbitmap.c \
+    $(LOCAL_PATH)/src/base/ftfstype.c \
+    $(LOCAL_PATH)/src/base/ftgasp.c \
+    $(LOCAL_PATH)/src/base/ftglyph.c \
+    $(LOCAL_PATH)/src/base/ftgxval.c \
+    $(LOCAL_PATH)/src/base/ftinit.c \
+    $(LOCAL_PATH)/src/base/ftlcdfil.c \
+    $(LOCAL_PATH)/src/base/ftmm.c \
+    $(LOCAL_PATH)/src/base/ftotval.c \
+    $(LOCAL_PATH)/src/base/ftpatent.c \
+    $(LOCAL_PATH)/src/base/ftpfr.c \
+    $(LOCAL_PATH)/src/base/ftstroke.c \
+    $(LOCAL_PATH)/src/base/ftsynth.c \
+    $(LOCAL_PATH)/src/base/ftsystem.c \
+    $(LOCAL_PATH)/src/base/fttype1.c \
+    $(LOCAL_PATH)/src/base/ftwinfnt.c \
+    $(LOCAL_PATH)/src/bdf/bdf.c \
+    $(LOCAL_PATH)/src/cache/ftccache.c \
+    $(LOCAL_PATH)/src/cff/cff.c \
+    $(LOCAL_PATH)/src/cid/type1cid.c \
+    $(LOCAL_PATH)/src/gzip/ftgzip.c \
+    $(LOCAL_PATH)/src/lzw/ftlzw.c \
+    $(LOCAL_PATH)/src/pcf/pcf.c \
+    $(LOCAL_PATH)/src/pfr/pfr.c \
+    $(LOCAL_PATH)/src/psaux/psaux.c \
+    $(LOCAL_PATH)/src/pshinter/pshinter.c \
+    $(LOCAL_PATH)/src/psnames/psmodule.c \
+    $(LOCAL_PATH)/src/raster/raster.c \
+    $(LOCAL_PATH)/src/sfnt/sfnt.c \
+    $(LOCAL_PATH)/src/smooth/smooth.c \
+    $(LOCAL_PATH)/src/truetype/truetype.c \
+    $(LOCAL_PATH)/src/type1/type1.c \
+    $(LOCAL_PATH)/src/type42/type42.c \
+    $(LOCAL_PATH)/src/winfonts/winfnt.c)
 
 LOCAL_C_INCLUDES := \
-    $(ROOT_PATH)/Engine/Container \
-    $(ROOT_PATH)/Engine/Core \
-    $(ROOT_PATH)/Engine/IO \
-    $(ROOT_PATH)/Engine/Math \
-    $(ROOT_PATH)/ThirdParty/STB \
-    $(ROOT_PATH)/ThirdParty/PugiXml/src \
-    $(ROOT_PATH)/ThirdParty/Squish
+    $(LOCAL_PATH)/include
 
-LOCAL_SRC_FILES := \
-    $(subst $(LOCAL_PATH)/,, \
-    $(wildcard $(LOCAL_PATH)/*.cpp))
+LOCAL_CFLAGS += -DFT2_BUILD_LIBRARY
 
 include $(BUILD_STATIC_LIBRARY)
 
 
-# Scene library
-LOCAL_PATH = $(ROOT_PATH)/Engine/Scene
+# kNet library
+LOCAL_PATH = $(ROOT_PATH)/ThirdParty/kNet
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := Scene
+LOCAL_MODULE := kNet
 
 LOCAL_C_INCLUDES := \
-    $(ROOT_PATH)/Engine/Container \
-    $(ROOT_PATH)/Engine/Core \
-    $(ROOT_PATH)/Engine/IO \
-    $(ROOT_PATH)/Engine/Math \
-    $(ROOT_PATH)/Engine/Resource
+    $(LOCAL_PATH)/include
 
 LOCAL_SRC_FILES := \
     $(subst $(LOCAL_PATH)/,, \
-    $(wildcard $(LOCAL_PATH)/*.cpp))
-
-LOCAL_CFLAGS += -Wno-invalid-offsetof
+    $(wildcard $(LOCAL_PATH)/src/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/src/unix/*.cpp))
 
 include $(BUILD_STATIC_LIBRARY)
 
@@ -163,32 +139,33 @@ LOCAL_MODULE := SDL
 LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
 
 LOCAL_SRC_FILES := \
-	$(subst $(LOCAL_PATH)/,, \
-	$(wildcard $(LOCAL_PATH)/src/*.c) \
-	$(wildcard $(LOCAL_PATH)/src/audio/*.c) \
-	$(wildcard $(LOCAL_PATH)/src/audio/android/*.c) \
-	$(wildcard $(LOCAL_PATH)/src/audio/dummy/*.c) \
-	$(LOCAL_PATH)/src/atomic/SDL_atomic.c \
-	$(LOCAL_PATH)/src/atomic/SDL_spinlock.c.arm \
-	$(wildcard $(LOCAL_PATH)/src/core/android/*.cpp) \
-	$(wildcard $(LOCAL_PATH)/src/cpuinfo/*.c) \
-	$(wildcard $(LOCAL_PATH)/src/events/*.c) \
-	$(wildcard $(LOCAL_PATH)/src/file/*.c) \
-	$(wildcard $(LOCAL_PATH)/src/haptic/*.c) \
-	$(wildcard $(LOCAL_PATH)/src/haptic/dummy/*.c) \
-	$(wildcard $(LOCAL_PATH)/src/joystick/*.c) \
-	$(wildcard $(LOCAL_PATH)/src/joystick/android/*.c) \
-	$(wildcard $(LOCAL_PATH)/src/loadso/dlopen/*.c) \
-	$(wildcard $(LOCAL_PATH)/src/stdlib/*.c) \
-	$(wildcard $(LOCAL_PATH)/src/thread/*.c) \
-	$(wildcard $(LOCAL_PATH)/src/thread/pthread/*.c) \
-	$(wildcard $(LOCAL_PATH)/src/timer/*.c) \
-	$(wildcard $(LOCAL_PATH)/src/timer/unix/*.c) \
-	$(wildcard $(LOCAL_PATH)/src/video/*.c) \
-	$(wildcard $(LOCAL_PATH)/src/video/android/*.c))
+    $(subst $(LOCAL_PATH)/,, \
+    $(wildcard $(LOCAL_PATH)/src/*.c) \
+    $(wildcard $(LOCAL_PATH)/src/audio/*.c) \
+    $(wildcard $(LOCAL_PATH)/src/audio/android/*.c) \
+    $(wildcard $(LOCAL_PATH)/src/audio/dummy/*.c) \
+    $(LOCAL_PATH)/src/atomic/SDL_atomic.c \
+    $(LOCAL_PATH)/src/atomic/SDL_spinlock.c.arm \
+    $(wildcard $(LOCAL_PATH)/src/core/android/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/src/cpuinfo/*.c) \
+    $(wildcard $(LOCAL_PATH)/src/events/*.c) \
+    $(wildcard $(LOCAL_PATH)/src/file/*.c) \
+    $(wildcard $(LOCAL_PATH)/src/haptic/*.c) \
+    $(wildcard $(LOCAL_PATH)/src/haptic/dummy/*.c) \
+    $(wildcard $(LOCAL_PATH)/src/joystick/*.c) \
+    $(wildcard $(LOCAL_PATH)/src/joystick/android/*.c) \
+    $(wildcard $(LOCAL_PATH)/src/loadso/dlopen/*.c) \
+    $(wildcard $(LOCAL_PATH)/src/stdlib/*.c) \
+    $(wildcard $(LOCAL_PATH)/src/thread/*.c) \
+    $(wildcard $(LOCAL_PATH)/src/thread/pthread/*.c) \
+    $(wildcard $(LOCAL_PATH)/src/timer/*.c) \
+    $(wildcard $(LOCAL_PATH)/src/timer/unix/*.c) \
+    $(wildcard $(LOCAL_PATH)/src/video/*.c) \
+    $(wildcard $(LOCAL_PATH)/src/video/android/*.c))
 
 LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES
-LOCAL_LDLIBS := -ldl -lGLESv1_CM -lGLESv2 -llog
+
+include $(BUILD_STATIC_LIBRARY)
 
 
 # Squish library
@@ -205,6 +182,20 @@ LOCAL_SRC_FILES := \
 include $(BUILD_STATIC_LIBRARY)
 
 
+# StanHull library
+LOCAL_PATH = $(ROOT_PATH)/ThirdParty/StanHull
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := StanHull
+
+LOCAL_SRC_FILES := \
+    $(subst $(LOCAL_PATH)/,, \
+    $(wildcard $(LOCAL_PATH)/*.cpp))
+
+include $(BUILD_STATIC_LIBRARY)
+
+
 # STB library
 LOCAL_PATH = $(ROOT_PATH)/ThirdParty/STB
 
@@ -220,27 +211,57 @@ include $(BUILD_STATIC_LIBRARY)
 
 
 # Urho3D executable
-LOCAL_PATH = $(ROOT_PATH)/Urho3D
+LOCAL_PATH = $(ROOT_PATH)
 
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := Urho3D
 
-LOCAL_C_INCLUDES := $(ROOT_PATH)/Engine/Container \
-    $(ROOT_PATH)/Engine/Core \
-    $(ROOT_PATH)/Engine/Engine \
-    $(ROOT_PATH)/Engine/IO \
-    $(ROOT_PATH)/Engine/Math \
-    $(ROOT_PATH)/Engine/Resource \
-    $(ROOT_PATH)/Engine/Scene \
-    $(ROOT_PATH)/Engine/Script
+LOCAL_C_INCLUDES := \
+    $(LOCAL_PATH)/Engine/Audio \
+    $(LOCAL_PATH)/Engine/Container \
+    $(LOCAL_PATH)/Engine/Core \
+    $(LOCAL_PATH)/Engine/Engine \
+    $(LOCAL_PATH)/Engine/Graphics \
+    $(LOCAL_PATH)/Engine/Input \
+    $(LOCAL_PATH)/Engine/IO \
+    $(LOCAL_PATH)/Engine/Math \
+    $(LOCAL_PATH)/Engine/Network \
+    $(LOCAL_PATH)/Engine/Physics \
+    $(LOCAL_PATH)/Engine/Resource \
+    $(LOCAL_PATH)/Engine/Scene \
+    $(LOCAL_PATH)/Engine/Script \
+    $(LOCAL_PATH)/Engine/UI \
+    $(LOCAL_PATH)/ThirdParty/AngelScript/include \
+    $(LOCAL_PATH)/ThirdParty/Bullet/src \
+    $(LOCAL_PATH)/ThirdParty/FreeType/include \
+    $(LOCAL_PATH)/ThirdParty/kNet/include \
+    $(LOCAL_PATH)/ThirdParty/PugiXml/src \
+    $(LOCAL_PATH)/ThirdParty/SDL/include \
+    $(LOCAL_PATH)/ThirdParty/Squish \
+    $(LOCAL_PATH)/ThirdParty/StanHull \
+    $(LOCAL_PATH)/ThirdParty/STB \
 
 LOCAL_SRC_FILES := \
     $(subst $(LOCAL_PATH)/,, \
-    $(wildcard $(LOCAL_PATH)/*.cpp))
-
-# Note: libraries have to be listed in reverse order of dependency
-LOCAL_STATIC_LIBRARIES := Graphics SDL Scene Resource PugiXml Squish STB IO Core Math Container
+    $(wildcard $(LOCAL_PATH)/Engine/Audio/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/Engine/Container/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/Engine/Core/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/Engine/Engine/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/Engine/Graphics/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/Engine/Graphics/OpenGL/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/Engine/Input/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/Engine/IO/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/Engine/Math/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/Engine/Network/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/Engine/Physics/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/Engine/Resource/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/Engine/Scene/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/Engine/Script/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/Engine/UI/*.cpp) \
+    $(wildcard $(LOCAL_PATH)/Urho3D/*.cpp))
+
+LOCAL_STATIC_LIBRARIES := AngelScript Bullet FreeType kNet PugiXml SDL Squish StanHull STB
 
 LOCAL_LDLIBS := -ldl -lGLESv1_CM -lGLESv2 -llog
 

+ 2 - 2
Android/jni/Application.mk

@@ -1,3 +1,3 @@
 ROOT_PATH := $(call my-dir)/../..
-APP_STL := stlport_static
-APP_CFLAGS += -DUSE_OPENGL -DUNIX
+APP_STL := gnustl_static
+APP_CPPFLAGS += -fexceptions -frtti -Wno-invalid-offsetof -DUSE_OPENGL

+ 3 - 18
Engine/Graphics/Light.cpp

@@ -146,27 +146,12 @@ void Light::OnSetAttribute(const AttributeInfo& attr, const Variant& src)
     Component::OnSetAttribute(attr, src);
     
     // Validate the bias, cascade & focus parameters
-    switch (attr.offset_)
-    {
-    case offsetof(Light, shadowBias_.constantBias_):
-    case offsetof(Light, shadowBias_.slopeScaledBias_):
+    if (attr.offset_ >= offsetof(Light, shadowBias_) && attr.offset_ < (offsetof(Light, shadowBias_) + sizeof(BiasParameters)))
         shadowBias_.Validate();
-        break;
-    
-    case offsetof(Light, shadowCascade_.start_):
-    case offsetof(Light, shadowCascade_.splits_):
-    case offsetof(Light, shadowCascade_.splits_) + sizeof(float):
-    case offsetof(Light, shadowCascade_.splits_) + sizeof(float) * 2:
-    case offsetof(Light, shadowCascade_.splits_) + sizeof(float) * 3:
-    case offsetof(Light, shadowCascade_.fadeStart_):
+    else if (attr.offset_ >= offsetof(Light, shadowCascade_) && attr.offset_ < (offsetof(Light, shadowCascade_) + sizeof(CascadeParameters)))
         shadowCascade_.Validate();
-        break;
-        
-    case offsetof(Light, shadowFocus_.quantize_):
-    case offsetof(Light, shadowFocus_.minView_):
+    else if (attr.offset_ >= offsetof(Light, shadowFocus_) && attr.offset_ < (offsetof(Light, shadowFocus_) + sizeof(FocusParameters)))
         shadowFocus_.Validate();
-        break;
-    }
 }
 
 void Light::ProcessRayQuery(const RayOctreeQuery& query, PODVector<RayQueryResult>& results)

+ 2 - 8
Engine/Graphics/Zone.cpp

@@ -83,15 +83,9 @@ void Zone::OnSetAttribute(const AttributeInfo& attr, const Variant& src)
     Component::OnSetAttribute(attr, src);
     
     // If bounding box, override mode, visibility or priority changes, dirty the drawable as applicable
-    switch (attr.offset_)
-    {
-    case offsetof(Zone, boundingBox_.min_):
-    case offsetof(Zone, boundingBox_.max_):
-    case offsetof(Zone, visible_):
-    case offsetof(Zone, priority_):
+    if ((attr.offset_ >= offsetof(Zone, boundingBox_) && attr.offset_ < (offsetof(Zone, boundingBox_) + sizeof(BoundingBox))) ||
+        attr.offset_ == offsetof(Zone, visible_) || attr.offset_ == offsetof(Zone, priority_))
         OnMarkedDirty(node_);
-        break;
-    }
 }
 
 void Zone::DrawDebugGeometry(DebugRenderer* debug, bool depthTest)

+ 0 - 9
ThirdParty/FreeType/CMakeLists.txt

@@ -3,17 +3,8 @@ set (TARGET_NAME FreeType)
 
 add_definitions (-DFT2_BUILD_LIBRARY)
 
-# Compiler-specific options
-#if (MSVC)
-#    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D FT2_BUILD_LIBRARY")
-#endif ()
-#if (MINGW)
-#    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D FT2_BUILD_LIBRARY")
-#endif ()
-
 # Define source files
 set (SOURCE_FILES
-    include/ft2build.h
     src/autofit/autofit.c
     src/base/ftbase.c
     src/base/ftbbox.c

+ 1 - 7
Urho3D/Urho3D.cpp

@@ -30,9 +30,7 @@
 #include "ResourceCache.h"
 #include "ScriptFile.h"
 
-#ifndef ANDROID
-#include <stdexcept>
-#endif
+#include <exception>
 
 #ifdef WIN32
 #include <windows.h>
@@ -76,9 +74,7 @@ int main(int argc, char** argv)
 
 void Run()
 {
-    #ifndef ANDROID
     try
-    #endif
     {
         // Check for script file name
         const Vector<String>& arguments = GetArguments();
@@ -131,11 +127,9 @@ void Run()
         }
         scriptFile.Reset();
     }
-    #ifndef ANDROID
     catch (std::bad_alloc&)
     {
         ErrorDialog("Urho3D", "An out-of-memory error occurred. The application will now exit.");
     }
-    #endif
 }