some more windows bandaids for optimized builds

really this is getting UGLY.
This commit is contained in:
Robin Gareus 2016-04-12 02:18:20 +02:00
parent 3fef6a3b8d
commit 7292989a5a
2 changed files with 37 additions and 3 deletions

View File

@ -102,8 +102,10 @@ luabridge::getIdentityKey ()
/* ...and this is the ugly part of it.
*
* We need to foward declare classes from gtk2_ardour.
* This is needed because some of the classes use objects from libardour
* We need to foward declare classes from gtk2_ardour
* end explicily list classes which are used by gtk2_ardour's bindings.
*
* This is needed because some of the GUI classes use objects from libardour
* as function parameters and the .exe would re-create symbols for libardour
* objects.
*
@ -143,6 +145,32 @@ CLASSKEYS(std::bitset<47ul>); // LuaSignal::LAST_SIGNAL
CLASSKEYS(ArdourMarker*);
CLASSKEYS(ARDOUR::RouteGroup);
CLASSKEYS(ARDOUR::LuaProc);
CLASSKEYS(ARDOUR::DataType);
CLASSKEYS(ARDOUR::ChanCount);
CLASSKEYS(boost::shared_ptr<ARDOUR::Processor>);
CLASSKEYS(ARDOUR::ParameterDescriptor);
CLASSKEYS(boost::shared_ptr<ARDOUR::AutomationList>);
CLASSKEYS(boost::shared_ptr<Evoral::ControlList>);
CLASSKEYS(ARDOUR::LuaOSC::Address);
CLASSKEYS(ARDOUR::Session);
CLASSKEYS(ARDOUR::BufferSet);
CLASSKEYS(ARDOUR::ChanMapping);
CLASSKEYS(ARDOUR::DSP::DspShm);
CLASSKEYS(PBD::ID);
CLASSKEYS(ARDOUR::Location);
CLASSKEYS(ARDOUR::PluginInfo);
CLASSKEYS(PBD::PropertyChange);
CLASSKEYS(std::vector<std::string>);
CLASSKEYS(std::list<boost::shared_ptr<ARDOUR::Route> >);
CLASSKEYS(boost::shared_ptr<ARDOUR::PluginInfo>);
CLASSKEYS(boost::shared_ptr<ARDOUR::Region>);
CLASSKEYS(boost::weak_ptr<ARDOUR::Route>);
CLASSKEYS(std::list<boost::shared_ptr<ARDOUR::Region> >);
CLASSKEYS(std::list<ARDOUR::AudioRange>);
CLASSKEYS(Evoral::Beats);
CLASSKEYS(ARDOUR::AudioEngine);
CLASSKEYS(void);
CLASSKEYS(float);
#endif // end windows special case

View File

@ -26,6 +26,12 @@
*/
//==============================================================================
#ifdef COMPILER_MSVC
# define LuaBridge_API __declspec(dllexport)
#else
# define LuaBridge_API // mingw is sane WRT to static class members
#endif
/** Unique Lua registry keys for a class.
Each registered class inserts three keys into the registry, whose
@ -33,7 +39,7 @@
allows a quick and reliable lookup for a metatable from a template type.
*/
template <class T>
class ClassInfo
class LuaBridge_API ClassInfo
{
public:
#ifdef PLATFORM_WINDOWS