diff options
-rw-r--r-- | src/plugin-luacd.cc | 10 | ||||
-rw-r--r-- | src/plugin-luapsx.cc | 18 |
2 files changed, 26 insertions, 2 deletions
diff --git a/src/plugin-luacd.cc b/src/plugin-luacd.cc index 5b10abc..f418f26 100644 --- a/src/plugin-luacd.cc +++ b/src/plugin-luacd.cc @@ -1,6 +1,12 @@ #include <BLua.h> #include <luacd.h> +#ifndef WIN32 +#define WEAK __attribute__ ((weak)) +#else +#define WEAK +#endif + static void _init_plugin(Lua * L) { static bool done = false; if (done) return; @@ -11,6 +17,10 @@ static void _init_plugin(Lua * L) { extern "C" { +WEAK void init_plugin(Lua * L) { + _init_plugin(L); +} + void luacd_init(Lua * L) { _init_plugin(L); } diff --git a/src/plugin-luapsx.cc b/src/plugin-luapsx.cc index e1f820c..e8c7713 100644 --- a/src/plugin-luapsx.cc +++ b/src/plugin-luapsx.cc @@ -1,13 +1,27 @@ #include <BLua.h> #include <luapsx.h> -extern "C" { +#ifndef WIN32 +#define WEAK __attribute__ ((weak)) +#else +#define WEAK +#endif -void init_plugin(Lua * L) { +static void _init_plugin(Lua * L) { static bool done = false; if (done) return; done = true; Luapsx::pushstatics(L); } +extern "C" { + +WEAK void init_plugin(Lua * L) { + _init_plugin(L); +} + +void luapsx_init(Lua * L) { + _init_plugin(L); +} + } |