mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-12 17:46:34 +01:00
liblua visibility and compiler-flags
This commit is contained in:
parent
1feb50b2b2
commit
8d26a67ddd
3 changed files with 77 additions and 16 deletions
|
|
@ -1,10 +1,24 @@
|
||||||
|
/* 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
|
#if _MSC_VER
|
||||||
#pragma push_macro("_CRT_SECURE_NO_WARNINGS")
|
# pragma push_macro("_CRT_SECURE_NO_WARNINGS")
|
||||||
#ifndef _CRT_SECURE_NO_WARNINGS
|
# ifndef _CRT_SECURE_NO_WARNINGS
|
||||||
#define _CRT_SECURE_NO_WARNINGS
|
# define _CRT_SECURE_NO_WARNINGS
|
||||||
#endif
|
# 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
|
#endif
|
||||||
|
|
||||||
|
// forward ardour's defines to luaconf.h
|
||||||
#ifdef PLATFORM_WINDOWS
|
#ifdef PLATFORM_WINDOWS
|
||||||
# define LUA_USE_WINDOWS
|
# define LUA_USE_WINDOWS
|
||||||
#elif defined __APPLE__
|
#elif defined __APPLE__
|
||||||
|
|
@ -13,6 +27,11 @@
|
||||||
# define LUA_USE_LINUX
|
# define LUA_USE_LINUX
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// forward liblua visibility to luaconf.h
|
||||||
|
#ifdef LIBLUA_BUILD_AS_DLL
|
||||||
|
#define LUA_BUILD_AS_DLL
|
||||||
|
#endif
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
@ -27,12 +46,14 @@ extern "C"
|
||||||
#undef LUA_LIB
|
#undef LUA_LIB
|
||||||
|
|
||||||
// override luaconf.h symbol export
|
// override luaconf.h symbol export
|
||||||
#undef LUA_API
|
#ifdef LIBLUA_STATIC // static lib (no DLL)
|
||||||
#undef LUALIB_API
|
# undef LUA_API
|
||||||
#undef LUAMOD_API
|
# undef LUALIB_API
|
||||||
#define LUA_API extern "C"
|
# undef LUAMOD_API
|
||||||
#define LUALIB_API LUA_API
|
# define LUA_API extern "C"
|
||||||
#define LUAMOD_API LUALIB_API
|
# define LUALIB_API LUA_API
|
||||||
|
# define LUAMOD_API LUALIB_API
|
||||||
|
#endif
|
||||||
|
|
||||||
// disable support for extenal libs
|
// disable support for extenal libs
|
||||||
#undef LUA_DL_DLL
|
#undef LUA_DL_DLL
|
||||||
|
|
@ -89,8 +110,12 @@ extern "C"
|
||||||
#pragma warning (pop)
|
#pragma warning (pop)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
} // end extern "C"
|
||||||
|
|
||||||
#if _MSC_VER
|
#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
|
#endif
|
||||||
|
|
|
||||||
35
libs/lua/lua/liblua_visibility.h
Normal file
35
libs/lua/lua/liblua_visibility.h
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
#ifndef __liblua_visibility_h__
|
||||||
|
#define __liblua_visibility_h__
|
||||||
|
|
||||||
|
#if defined(COMPILER_MSVC)
|
||||||
|
# define LIBLUA_DLL_IMPORT __declspec(dllimport)
|
||||||
|
# define LIBLUA_DLL_EXPORT __declspec(dllexport)
|
||||||
|
# define LIBLUA_DLL_LOCAL
|
||||||
|
#else
|
||||||
|
# define LIBLUA_DLL_IMPORT __attribute__ ((visibility ("default")))
|
||||||
|
# define LIBLUA_DLL_EXPORT __attribute__ ((visibility ("default")))
|
||||||
|
# define LIBLUA_DLL_LOCAL __attribute__ ((visibility ("hidden")))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef COMPILER_MSVC
|
||||||
|
// MSVC: build liblua as DLL
|
||||||
|
# define LIBLUA_BUILD_AS_DLL
|
||||||
|
#else
|
||||||
|
// others currently use a static lib (incl. with libardour)
|
||||||
|
# define LIBLUA_STATIC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef LIBLUA_STATIC
|
||||||
|
# define LIBLUA_API
|
||||||
|
#else
|
||||||
|
// define when building the DLL (instead of using it)
|
||||||
|
# ifdef LIBLUA_DLL_EXPORTS
|
||||||
|
# define LIBLUA_API LIBLUA_DLL_EXPORT
|
||||||
|
# else
|
||||||
|
# define LIBLUA_API LIBLUA_DLL_IMPORT
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __liblua_visibility_h__ */
|
||||||
|
|
@ -22,9 +22,10 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <sigc++/sigc++.h>
|
#include <sigc++/sigc++.h>
|
||||||
|
|
||||||
|
#include "lua/liblua_visibility.h"
|
||||||
#include "lua/lua.h"
|
#include "lua/lua.h"
|
||||||
|
|
||||||
class LuaState {
|
class LIBLUA_API LuaState {
|
||||||
public:
|
public:
|
||||||
LuaState();
|
LuaState();
|
||||||
LuaState(lua_State *ls);
|
LuaState(lua_State *ls);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue