KDE/kdevplatform/plugins

Andreas Pakulat apaku at gmx.de
Mon Jun 8 01:39:18 CEST 2009


On 07.06.09 21:50:06, Andreas Hartmetz wrote:
> On Sunday 07 June 2009 01:39:56 Andreas Pakulat wrote:
> > On 06.06.09 21:05:34, Andreas Hartmetz wrote:
> > > SVN commit 978363 by ahartmetz:
> > >
> > > link with gold
> > >
> > >  M  +6 -4      git/tests/CMakeLists.txt
> > >  M  +2 -0      mercurial/tests/CMakeLists.txt
> > >  M  +1 -1      snippet/CMakeLists.txt
> > >
> > >
> > > --- trunk/KDE/kdevplatform/plugins/git/tests/CMakeLists.txt
> > > #978362:978363 @@ -20,13 +20,15 @@
> > >      set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} )
> > >  	set(gitInitTest_SRCS initTest.cpp ../gitplugin.cpp)
> > >      kde4_add_unit_test(kdevgit-test ${gitInitTest_SRCS})
> > > -	target_link_libraries(kdevgit-test
> > > -		${QT_QTTEST_LIBRARY}
> > > -		${KDE4_KDECORE_LIBS}
> > > +    target_link_libraries(kdevgit-test
> > > +        ${QT_QTTEST_LIBRARY}
> > > +        ${KDE4_KDECORE_LIBS}
> > > +        kdevplatformshell
> > > +        kdevplatforminterfaces
> > >          kdevplatformutil
> > >          kdevplatformvcs
> > >          kdevplatformtestshell
> >
> > This shouldn't be needed kdevplatformtestshell sets kdevplatformshell as
> > link-interface library, which means the linker is supposed to automatically
> > link the library in. This suggests that either your linker is broken, or
> > CMake needs special support for the gold linker. Please revert this and the
> > similar commit you've done to kdevelop (the same applies to the other 2
> > files this commit changes).
> >
> The link interface libraries should, for all I know, be added to the g++ / ld 
> command-line by cmake. KOffice for example builds just fine after all its 
> libraries have gotten a comprehensive link interface. I had a discussion about 
> this with Thomas Zander and it turned out that this was how it was supposed to 
> work but it broke and people using ld didn't notice. Thomas fixed just a few 
> lines in some CMakeLists.txt and all the linker errors were gone.
> I suspect that the link interface setup here somehow doesn't work.

Moving over to kde-buildsystem to get some more input.

Maybe I misunderstood how the link-interface-libs stuff is supposed to
work. So far I though that if kdevplatformtestshell library declares
kdevplatformshell as one of its link-interface libraries, then cmake will
automatically add the kdevplatformshell library to any other target that
links against kdevplatformtestshell. In the same way kdevplatformshell has
kdevplatforminterfaces as its link-interface-lib, hence a target linking to
kdevplatformshell should get kdevplatforminterfaces too.

What I'm actually not 100% sure about at this point, if target kdevgit-test
links against kdevplatformtestshell, which has kdevplatformshell as
link-interface-lib then does it also automatically get
kdevplatforminterfaces because kdevplatformshell has that in its own
link-interface-lib? In other words, are link-interface-libs "forwarded" in
this sense?

Andreas

-- 
You could live a better life, if you had a better mind and a better body.


More information about the Kde-buildsystem mailing list