Hmm, patch looks fine, simillar to my idea:
+-- wxSmith base -------------------------------------------------+
| |
| +------------------------+ +-----------------------+ |
| | Plugin classes | | wxSmith engine | |
| | * wxSmith | =====> | (all other wxSmith's | |
| | * wxSmithMime | | classes) | |
| +------------------------+ +-----------------------+ |
| /\ /\ |
| || || |
+------------------------------------------||------||-------------+
|| ||
=================================== ||
|| ||
+-- Contrib items 1 ----+ +-- Contrib items 2 ----+
| | | |
| | | |
+-----------------------+ +-----------------------+
So plugin classes are put into .so, they would only forward calls from Code::Blocks into wxSmith engine. The Engine itself would be .dylib object (just like wxsmithlib in your patch) and contrib item classes would connect through engine.
That may have few drawbacks (it won't be able to create .cbplugin for wxSmith), but currently they wont cause any problems.
I'll try to implement this by using your patch (I'm not familliar enough with Makfiles to rely on my own knowledge
) and hope that this will work. And I'll leave one dll in windows since it works fine.
Regards
BYO
EDIT: I just forgot to mention that current content of wxSmith class will be put into wxSmithEngine because some components my use it's functionality. Old wxSmith class will be only a wrapper for wxSmithEngine - that's the main difference between my solution and yours