CMake and dependencies

Michael Jansen kde at michael-jansen.biz
Fri Jul 30 11:45:41 CEST 2010


> No it shouldn't unless akregatorinterfaces explicitly lists khtml in its
> LINK_INTERFACE_LIBRARIES (see man cmake, target_link_libraries). And
> that should only happen if akregratorinterfaces uses symbols from khtml
> in its public API. If its all inside the .cpp file then there's no
> reason to declare khtml as interface-library.
> 
> If akregatorstorageexporter uses symbols from khtml it needs to
> explicitly link against the library (unless another of the libs it links
> against has it in the interface-libs).
> 
> Also this interface-libs stuff only works with cmake targets (real ones
> or imported ones properly set up), so if thats not the case you also
> have to link khtml explicitly.

I have the following problem with all of this:

I have two installations of libphonon.so

1. The Qt Version
2. The git/master Version

When linkink the akregatorexport target ld decides by itself to link against khtml. i have no idea 
why and i know of no option to find out about the reason.

Then ld notices that khtml uses libphonon and links against that too. That's where things get 
interesting. It finds libphonon from qt. Again i have no idea how it decides to use that version. I 
googled and failed to find a explanation.

There is only one lib in my system that require that libphonon version (rpath). That is 
QtMultimedia. All kde libs require the git/master version.

The build stops because it misses ONE symbol that was added in the git/master Version recently. And 
it says it misses it from libkhtml.

Under the idea that Akregatorinterfaces does not expose KHTML on it's interface. Everything here 
works correct according to your description.

But it doesn't link anyway.

And i hope the answer is not you have to remote the Qt libphonon. I have a similar problem with 
poppler. The poppler build itself picks up ab a libpoppler from my system.

And how is all of that supposed to work with gold? Which according to common mythology does not add 
anything not specified on the command line to the linking process.

Mike



More information about the Kde-buildsystem mailing list