From 36c2dbefc06607483eb0d309e3a9a4ad1f4f8f73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Remko=20Tron=C3=A7on?= Date: Mon, 4 Apr 2011 21:38:28 +0200 Subject: Compile Lua as C++ to avoid setjmp/longjmp & exception conflicts. diff --git a/3rdParty/Lua/SConscript b/3rdParty/Lua/SConscript index 3baa2d8..68f4e36 100644 --- a/3rdParty/Lua/SConscript +++ b/3rdParty/Lua/SConscript @@ -30,6 +30,10 @@ if env.get("LUA_BUNDLED", False) : if env["SCONS_STAGE"] == "build" : myenv = env.Clone() + if env["PLATFORM"] == "win32" : + myenv.Append(CFLAGS = ["/TP"]) + else : + myenv.Append(CFLAGS = ["-x", "c++"]) # Remove warn flags myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]]) diff --git a/BuildTools/Copyrighter.py b/BuildTools/Copyrighter.py index ec6220e..589459d 100755 --- a/BuildTools/Copyrighter.py +++ b/BuildTools/Copyrighter.py @@ -136,7 +136,7 @@ elif sys.argv[1] == "check-all-copyrights" : for (path, dirs, files) in os.walk(".") : if "3rdParty" in path or ".sconf" in path or "Swift.app" in path : continue - for filename in [os.path.join(path, file) for file in files if (file.endswith(".cpp") or file.endswith(".h")) and not "ui_" in file and not "moc_" in file and not "qrc_" in file and not "BuildVersion.h" in file and not "Swiften.h" in file and not "swiften-config.h" in file] : + for filename in [os.path.join(path, file) for file in files if (file.endswith(".cpp") or file.endswith(".h")) and not "ui_" in file and not "moc_" in file and not "qrc_" in file and not "BuildVersion.h" in file and not "Swiften.h" in file and not "swiften-config.h" in file and not "linit.cpp" in file ] : ok &= check_copyright(filename) if not ok : sys.exit(-1) diff --git a/Sluift/Lua/Value.cpp b/Sluift/Lua/Value.cpp index c03e633..3164ec6 100644 --- a/Sluift/Lua/Value.cpp +++ b/Sluift/Lua/Value.cpp @@ -6,9 +6,7 @@ #include "Value.h" -extern "C" { - #include -} +#include #include #include diff --git a/Sluift/SConscript b/Sluift/SConscript index 19255f1..6897f6d 100644 --- a/Sluift/SConscript +++ b/Sluift/SConscript @@ -22,6 +22,10 @@ if env["SCONS_STAGE"] == "build" : myenv.Append(CPPDEFINES = ["SLUIFT_BUILD_DLL"]) elif myenv["PLATFORM"] == "darwin" : myenv["SHLIBSUFFIX"] = ".so" + if env["PLATFORM"] == "win32" : + myenv.Append(CFLAGS = ["/TP"]) + else : + myenv.Append(CFLAGS = ["-x", "c++"]) myenv["SLUIFT_VERSION"] = Version.getBuildVersion("sluift") def patchLua(env, target, source) : diff --git a/Sluift/sluift.cpp b/Sluift/sluift.cpp index 2ef5f9e..260c923 100644 --- a/Sluift/sluift.cpp +++ b/Sluift/sluift.cpp @@ -4,10 +4,8 @@ * See Documentation/Licenses/GPLv3.txt for more information. */ -extern "C" { - #include "sluift.h" - #include -} +#include "sluift.h" +#include #include #include diff --git a/Swiftob/LuaCommands.h b/Swiftob/LuaCommands.h index dc8e36e..f506a70 100644 --- a/Swiftob/LuaCommands.h +++ b/Swiftob/LuaCommands.h @@ -9,12 +9,9 @@ #include #include -extern "C" { #include #include #include -} - #include #include #include "Swiften/Network/NetworkFactories.h" diff --git a/Swiftob/SConscript b/Swiftob/SConscript index 3928ff0..e955a22 100644 --- a/Swiftob/SConscript +++ b/Swiftob/SConscript @@ -14,7 +14,7 @@ if env["SCONS_STAGE"] == "build": myenv.MergeFlags(myenv["PLATFORM_FLAGS"]) myenv.MergeFlags(myenv.get("LUA_FLAGS", {})) sources = [ - "linit.c", # This is horrible! + "linit.cpp", "Swiftob.cpp", "Users.cpp", "Commands.cpp", diff --git a/Swiftob/linit.c b/Swiftob/linit.c deleted file mode 100644 index 13c5b09..0000000 --- a/Swiftob/linit.c +++ /dev/null @@ -1 +0,0 @@ -#include "../3rdParty/Lua/src/linit.c" diff --git a/Swiftob/linit.cpp b/Swiftob/linit.cpp new file mode 100644 index 0000000..13c5b09 --- /dev/null +++ b/Swiftob/linit.cpp @@ -0,0 +1 @@ +#include "../3rdParty/Lua/src/linit.c" -- cgit v0.10.2-6-g49f6