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 <[email protected]>
--- 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
Description: This is a digitally signed message part.
_______________________________________________ Kde-buildsystem mailing list [email protected] https://mail.kde.org/mailman/listinfo/kde-buildsystem
