Closed cppguru closed 9 years ago
This issue will be resolved (at least partially) when I attempt to allow plugins as a first-class citizen of bdemeta
.
As a first cut, I am looking at how to implement option 1:
dlopen
/LoadLibrary
).@cppguru I have broken up the original issue into 4 new issues: #12, #13, #14 and #15. I hope you don't mind if I close this issue. If you see something that you have requested that is not covered in those other issues but is related, then please update them. If it seems somewhat unrelated, please create a new issue.
If you do not want to bother with dlopen/LoadLibrary you may just link it in as usual. Don't waste your time on the pligin infrastructure, I am supposed to implement that. I think we should not have competing ones. Talk to Brock if you think we should.
On Mon, Feb 2, 2015 at 2:52 AM, Masud Rahman notifications@github.com wrote:
Closed #7 https://github.com/frutiger/bdemeta/issues/7.
— Reply to this email directly or view it on GitHub https://github.com/frutiger/bdemeta/issues/7#event-228326421.
When I am making a plugin I may have 3 kinds of different ways of building it.
dlopen
/LoadLibrary
).Side note: These 3 might require differences in the source, which we may have to contain with
#if
ugliness (unless we can hide the differences in components -- not enough experiences to say which will be true). We assume the "worst case" for the build system: we build all 3 variant from the same source code. In which case we will need:-D
target-type-thing sounds like a good ideaThe problem is that, at the moment, as a programmer, I cannot have a static and a dynamic plugin, unless I edit the source code of
bdemeta
; as the tool has no concept of multiple different outputs. So plugins (all plugins) are either static or dynamic. So to step closer to a solution we need to be able to specify for each element (group, plugin) what kind of targets do they support and their users (the dependent executable) should be able to specify what flavor do they want. (This is somewhat similar to thread-aware/single-threaded variants. We don't need groups ending up being shared libraries right now, but BDE is already doing that for Windows.) Whatever way we do these in the metafiles, it has to be the same how BDE wants to do it -- assuming they have one.