mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-13 18:16:35 +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
|
||||
#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
|
||||
#elif defined __APPLE__
|
||||
|
|
@ -13,6 +27,11 @@
|
|||
# define LUA_USE_LINUX
|
||||
#endif
|
||||
|
||||
// forward liblua visibility to luaconf.h
|
||||
#ifdef LIBLUA_BUILD_AS_DLL
|
||||
#define LUA_BUILD_AS_DLL
|
||||
#endif
|
||||
|
||||
extern "C"
|
||||
{
|
||||
|
||||
|
|
@ -27,12 +46,14 @@ extern "C"
|
|||
#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
|
||||
|
|
@ -89,8 +110,12 @@ extern "C"
|
|||
#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
|
||||
|
|
|
|||
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 <sigc++/sigc++.h>
|
||||
|
||||
#include "lua/liblua_visibility.h"
|
||||
#include "lua/lua.h"
|
||||
|
||||
class LuaState {
|
||||
class LIBLUA_API LuaState {
|
||||
public:
|
||||
LuaState();
|
||||
LuaState(lua_State *ls);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue