Преглед изворни кода

Attempt to fix mac nil macro issue

Paul пре 11 година
родитељ
комит
dc816bb48c

+ 1 - 0
QGearsMain/CMakeLists.txt

@@ -65,6 +65,7 @@ set(HEADER_FILES
   include/map/QGearsWalkmeshFile.h
   include/map/QGearsWalkmeshFileManager.h
   include/map/QGearsWalkmeshFileXMLSerializer.h
+  include/LuaIncludes.h
   include/QGearsGameState.h
   include/QGearsPrerequisites.h
   include/core/particles/emitters/ParticlePointEmitter.h

+ 21 - 0
QGearsMain/include/LuaIncludes.h

@@ -0,0 +1,21 @@
+#pragma once
+
+// Wraps the LUA includes for platform specific build workarounds
+
+extern "C"
+{
+    #include <lua.h>
+    #include <lualib.h>
+    #include <lauxlib.h>
+}
+
+#ifdef __APPLE__
+// Something in the Apple headers seems to #define nil as __NULL 
+// this then causes a build error in luabind:
+// luabind/nil.hpp:36:40: error: expected unqualified-id
+// extern LUABIND_API detail::nil_type nil;
+#undef nil
+#endif
+
+#include <luabind/luabind.hpp>
+#include <luabind/yield_policy.hpp>

+ 1 - 7
QGearsMain/include/core/ScriptManager.h

@@ -5,16 +5,10 @@
 #include <OgreString.h>
 
 #include "Event.h"
-extern "C"
-{
-    #include <lua.h>
-}
-#include <luabind/luabind.hpp>
+#include "LuaIncludes.h"
 
 class Entity;
 
-
-
 struct ScriptId
 {
     ScriptId(): entity( "" ), function( "" ){}

+ 1 - 9
QGearsMain/src/core/ScriptManager.cpp

@@ -8,15 +8,7 @@
 #include "core/Timer.h"
 #include "core/Utilites.h"
 #include "core/XmlScriptsFile.h"
-extern "C"
-{
-    #include <lua.h>
-    #include <lualib.h>
-    #include <lauxlib.h>
-}
-#include <luabind/luabind.hpp>
-#include <luabind/yield_policy.hpp>
-
+#include "LuaIncludes.h"
 
 
 ConfigVar cv_debug_script( "debug_script", "Debug script flags. 0x01 - System, 0x02 - Entity, 0x04 - Ui.", "0" );