[CMake] plugin dependencies and TARGET_LINK_LIBRARIES()
Kishore
kitts.mailinglists at gmail.com
Tue Jun 15 23:21:27 EDT 2010
On Tuesday 15 Jun 2010 11:32:17 pm Andreas Pakulat wrote:
> On 15.06.10 22:18:04, Kishore wrote:
> > How do i inform cmake when building a module that it depends on another
> > module? Does cmake need to even know that?
> >
> > I am building a plugin based qt application (my first time with plugins)
> > and my situlation like with many other applications is that plugin A
> > depends on plugin B. In my application i take care to load plugin B
> > before A. However, loading plugin A fails complaining that it could not
> > resolve links which are in B. plugin B which only depends on the
> > application loads fine.
> >
> > Now, everything works fine if i declare that plugin A depends on B using
> > the TARGET_LINK_LIBRARIES() function. But for this to work, i have to
> > declare both A and B as SHARED instead of MODULE libraries.
> >
> > What is the right way to go?
>
> Thats not a real plugin system, plugins don't link against other plugins
> directly. Your options are:
>
> - extract the code from B that you need in A into the shared lib (that
> you should already have) that both A and B (and your application) link
> against
This i could do...
> - provide an interface header from B and a way in your app for a plugin
> to get a pointer to such an interface. Then provide the necessary api
> functions you need in A in that interface as pure virtual. That way A
> can use this virtual interface to get at the B functions without
> directly linking against it.
This I don't fully understand. If A depends in B which would mean that it
extends functionality in B, it would have to call some methods in B. No?
In my implementation, I have a base class in B that has some pure virtual
functions that are implemented by a class in A. On loading A it registers a
factory object declaring availability of a certain functionality. The
registration API resides in B.
Apparently, I do not properly understand the concept of one plugin depending
on another.
--
Cheers!
Kishore
Ps: I initially thought this may have to do with cmake but it seems that this
is more to do with general C++ and qt programming. If there is a more
appropriate list for this please let me know.
More information about the CMake
mailing list