CMake and dependencies
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.
More information about the Kde-buildsystem