yet another multi-ABI bundle installer fix
[ardour.git] / libs / lua / lua.cc
index cc6593a13d963889b594eddb9415989839bd40bf..7eed622f9bb9cfb11c5d706dc35756d36670474f 100644 (file)
@@ -1,16 +1,35 @@
+/* This is a C++ wrapper to compile the lua C code
+ * with settings appropriate for including it with
+ * Ardour.
+ */
+
+#include "lua/liblua_visibility.h"
+
 #if _MSC_VER
-#pragma push_macro("_CRT_SECURE_NO_WARNINGS")
-#ifndef _CRT_SECURE_NO_WARNINGS
-#define _CRT_SECURE_NO_WARNINGS
-#endif
+# pragma push_macro("_CRT_SECURE_NO_WARNINGS")
+#  ifndef _CRT_SECURE_NO_WARNINGS
+#    define _CRT_SECURE_NO_WARNINGS
+#  endif
+#elif defined(__clang__)
+#  pragma clang diagnostic push
+#  pragma clang diagnostic ignored "-Wcast-qual"
+#elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
+#  pragma GCC diagnostic push
+#  pragma GCC diagnostic ignored "-Wcast-qual"
 #endif
 
+// forward ardour's defines to luaconf.h
 #ifdef PLATFORM_WINDOWS
-# define LUA_USE_WINDOWS
+#  define LUA_USE_WINDOWS
 #elif defined __APPLE__
-# define LUA_USE_MACOSX
+#  define LUA_USE_MACOSX
 #else
-# define LUA_USE_LINUX
+#  define LUA_USE_LINUX
+#endif
+
+// forward liblua visibility to luaconf.h
+#ifdef LIBLUA_BUILD_AS_DLL
+#define LUA_BUILD_AS_DLL
 #endif
 
 extern "C"
@@ -20,19 +39,21 @@ extern "C"
 #define lvm_c
 #define LUA_CORE
 #define LUA_LIB
-#include "lua-5.3.2/luaconf.h"
+#include "lua-5.3.3/luaconf.h"
 #undef lobject_c
 #undef lvm_c
 #undef LUA_CORE
 #undef LUA_LIB
 
 // override luaconf.h symbol export
-#undef LUA_API
-#undef LUALIB_API
-#undef LUAMOD_API
-#define LUA_API                extern "C"
-#define LUALIB_API     LUA_API
-#define LUAMOD_API     LUALIB_API
+#ifdef LIBLUA_STATIC // static lib (no DLL)
+#  undef LUA_API
+#  undef LUALIB_API
+#  undef LUAMOD_API
+#  define LUA_API     extern "C"
+#  define LUALIB_API  LUA_API
+#  define LUAMOD_API  LUALIB_API
+#endif
 
 // disable support for extenal libs
 #undef LUA_DL_DLL
@@ -47,50 +68,54 @@ extern "C"
 #pragma warning (disable: 4702) /* Unreachable code */
 #endif
 
-#include "lua-5.3.2/ltable.c"
-
-#include "lua-5.3.2/lauxlib.c"
-#include "lua-5.3.2/lbaselib.c"
-
-#include "lua-5.3.2/lbitlib.c"
-#include "lua-5.3.2/lcorolib.c"
-#include "lua-5.3.2/ldblib.c"
-#include "lua-5.3.2/linit.c"
-#include "lua-5.3.2/liolib.c"
-#include "lua-5.3.2/lmathlib.c"
-#include "lua-5.3.2/loslib.c"
-#include "lua-5.3.2/lstrlib.c"
-#include "lua-5.3.2/ltablib.c"
-
-#include "lua-5.3.2/lapi.c"
-#include "lua-5.3.2/lcode.c"
-#include "lua-5.3.2/lctype.c"
-#include "lua-5.3.2/ldebug.c"
-#include "lua-5.3.2/ldo.c"
-#include "lua-5.3.2/ldump.c"
-#include "lua-5.3.2/lfunc.c"
-#include "lua-5.3.2/lgc.c"
-#include "lua-5.3.2/llex.c"
-#include "lua-5.3.2/lmem.c"
-#include "lua-5.3.2/lobject.c"
-#include "lua-5.3.2/lopcodes.c"
-#include "lua-5.3.2/lparser.c"
-#include "lua-5.3.2/lstate.c"
-#include "lua-5.3.2/lstring.c"
-#include "lua-5.3.2/ltm.c"
-#include "lua-5.3.2/lundump.c"
-#include "lua-5.3.2/lutf8lib.c"
-#include "lua-5.3.2/lvm.c"
-#include "lua-5.3.2/lzio.c"
-
-#include "lua-5.3.2/loadlib.c"
+#include "lua-5.3.3/ltable.c"
+
+#include "lua-5.3.3/lauxlib.c"
+#include "lua-5.3.3/lbaselib.c"
+
+#include "lua-5.3.3/lbitlib.c"
+#include "lua-5.3.3/lcorolib.c"
+#include "lua-5.3.3/ldblib.c"
+#include "lua-5.3.3/linit.c"
+#include "lua-5.3.3/liolib.c"
+#include "lua-5.3.3/lmathlib.c"
+#include "lua-5.3.3/loslib.c"
+#include "lua-5.3.3/lstrlib.c"
+#include "lua-5.3.3/ltablib.c"
+
+#include "lua-5.3.3/lapi.c"
+#include "lua-5.3.3/lcode.c"
+#include "lua-5.3.3/lctype.c"
+#include "lua-5.3.3/ldebug.c"
+#include "lua-5.3.3/ldo.c"
+#include "lua-5.3.3/ldump.c"
+#include "lua-5.3.3/lfunc.c"
+#include "lua-5.3.3/lgc.c"
+#include "lua-5.3.3/llex.c"
+#include "lua-5.3.3/lmem.c"
+#include "lua-5.3.3/lobject.c"
+#include "lua-5.3.3/lopcodes.c"
+#include "lua-5.3.3/lparser.c"
+#include "lua-5.3.3/lstate.c"
+#include "lua-5.3.3/lstring.c"
+#include "lua-5.3.3/ltm.c"
+#include "lua-5.3.3/lundump.c"
+#include "lua-5.3.3/lutf8lib.c"
+#include "lua-5.3.3/lvm.c"
+#include "lua-5.3.3/lzio.c"
+
+#include "lua-5.3.3/loadlib.c"
 
 #if _MSC_VER
 #pragma warning (pop)
 #endif
 
-}
+} // end extern "C"
 
 #if _MSC_VER
-#pragma pop_macro("_CRT_SECURE_NO_WARNINGS")
+#  pragma pop_macro("_CRT_SECURE_NO_WARNINGS")
+#elif defined(__clang__)
+#  pragma clang diagnostic pop
+#elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
+#  pragma GCC diagnostic pop
 #endif