[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-buildsystem
Subject:    Re: reduced link interface: some link breakage possible
From:       Modestas Vainius <modestas () vainius ! eu>
Date:       2008-12-15 23:35:29
Message-ID: 200812160135.36520.modestas () vainius ! eu
[Download RAW message or body]

[Attachment #2 (multipart/signed)]

[Attachment #4 (multipart/mixed)]


Hello,

Tuesday 16 December 2008, David Faure rašė:
> Doesn't this break SC, i.e. people upgrading to a newer kdelibs (e.g. via
> their distro) will suddenly be unable to compile 3rd party kde apps
> released before KDE 4.2?
So those 3rd party apps need to fix to their build system. Reduced linking 
interface has been under discusion since May and Debian has had it enabled one 
way or another since 4.0.8x.

> Would it help to only enable explicitely in every module that supports it,
> while leaving it disabled when compiling ksomeapp?
Almost all KDE 4.2 modules support it more or less properly (i.e. they do not 
leak non KDE and non QT libraries when unnecessary) with the exception of 
workspace which still leaks useless system libraries. Preliminary patch 
attached.

> Or does it break both SC and BC anyway, in which case this wouldn't even
> help (e.g. ksomeapp can't link anymore, or 3rd party plasma applets will
> stop loading...)?
It does not break BC, only SC in some cases. Now cmake can be explicitly told 
which external libraries the library links to are part of the link interface 
and which are simply needed for the library implementation and do not need to 
be linked recursively again and again to the users of the library.

> We _have_ to provide some stability in the build system... breaking SC
> and/or BC is really not going in the right direction.
Linking each little application to the load of useless system libraries is a 
lot worse (dependency mess) than this minor SC breakage which most projects 
probably won't notice anyway since they fixed the issue long ago or have never 
had it in the first place (e.g. target_link_libraries() was maintained 
carefully).

-- 
Modestas Vainius <modestas@vainius.eu>


["97_fix_target_link_libraries.diff" (text/x-patch)]

--- a/libs/kworkspace/CMakeLists.txt
+++ b/libs/kworkspace/CMakeLists.txt
@@ -18,6 +18,7 @@
 kde4_add_library(kworkspace SHARED ${kworkspace_LIB_SRCS})
 
 target_link_libraries(kworkspace  ${KDE4_KDEUI_LIBS} ${X11_LIBRARIES} )
+target_link_libraries(kworkspace  LINK_INTERFACE_LIBRARIES ${KDE4_KDEUI_LIBRARY} )
 
 set_target_properties(kworkspace PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION \
${GENERIC_LIB_SOVERSION} )  install(TARGETS kworkspace EXPORT \
                kdeworkspaceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS} )
--- a/libs/taskmanager/CMakeLists.txt
+++ b/libs/taskmanager/CMakeLists.txt
@@ -34,6 +34,7 @@
   target_link_libraries(taskmanager ${X11_Xcomposite_LIB})
 endif (X11_Xcomposite_FOUND)
 
+target_link_libraries(taskmanager LINK_INTERFACE_LIBRARIES ${QT_QTGUI_LIBRARY} )
 set_target_properties(taskmanager PROPERTIES VERSION ${GENERIC_LIB_VERSION} \
SOVERSION ${GENERIC_LIB_SOVERSION} )  install(TARGETS taskmanager EXPORT \
kdeworkspaceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS} )  


["signature.asc" (application/pgp-signature)]

_______________________________________________
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic