From 1caef183bf016d366f24f3dd4bd8b5c220cdb390 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 3 Dec 2019 02:27:44 +0100 Subject: [PATCH] Fix Windows builds This fixes a missing symbol error due to the weird way how Windows maps the same, identical symbols using different addresses in .dll and .exe. Here specifically for int luabridge::CFunc::vectorToArray > >(lua_State*) which was added in 5e1a73a28c07 resulting in gtk2_ardour/luainstance.cc error: explicit instantiation of 'static const void* luabridge::ClassInfo::getStaticKey() [with T = std::vector]' but no definition available [-fpermissive] gtk2_ardour/luainstance.cc error: explicit instantiation of 'static const void* luabridge::ClassInfo::getClassKey() [with T = std::vector]' but no definition available [-fpermissive] gtk2_ardour/luainstance.cc error: explicit instantiation of 'static const void* luabridge::ClassInfo::getConstKey() [with T = std::vector]' but no definition available [-fpermissive] --- gtk2_ardour/luainstance.cc | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gtk2_ardour/luainstance.cc b/gtk2_ardour/luainstance.cc index fa858888a3..12c474229e 100644 --- a/gtk2_ardour/luainstance.cc +++ b/gtk2_ardour/luainstance.cc @@ -62,6 +62,36 @@ static const char* ui_scripts_file_name = "ui_scripts"; +#ifdef PLATFORM_WINDOWS +/* see libs/ardour/luabindings.cc for details */ + +template +void const* +luabridge::ClassInfo::getStaticKey () +{ + static char value; + return &value; +} + +template +void const* +luabridge::ClassInfo::getClassKey () +{ + static char value; + return &value; +} + +template +void const* +luabridge::ClassInfo::getConstKey () +{ + static char value; + return &value; +} + +CLASSKEYS(std::vector); +#endif + namespace LuaCairo { /** wrap RefPtr< Cairo::ImageSurface > *