Build error in kdeplasma-addons

Alexander Neundorf neundorf at kde.org
Tue May 4 22:36:01 CEST 2010


Hi Ivan,

the lancelot-datamodels library currently doesn't compile if not all KDE 
modules have been installed to the same prefix:
http://my.cdash.org/viewBuildError.php?buildid=64257

The problem is that you have the following code in your CMakeLists.txt:

set(screensaver_xml
    ${KDE4WORKSPACE_DBUS_INTERFACES_DIR}/org.freedesktop.ScreenSaver.xml)
...
set(kmail_xml ${DBUS_INTERFACES_INSTALL_DIR}/org.kde.kmail.kmail.xml)
...
set(kmail_folder_xml ${DBUS_INTERFACES_INSTALL_DIR}/org.kde.kmail.folder.xml)
...
set(kopete_xml ${DBUS_INTERFACES_INSTALL_DIR}/org.kde.Kopete.xml)
...

These xml files are installed by kdebase/workspace, and I guess kdepim and 
kdenetwork. ${DBUS_INTERFACES_INSTALL_DIR} is the directory where dbus xml 
files of the current project (i.e. kdeplasma) will be installed to. If you 
set CMAKE_INSTALL_PREFIX to some other directory than your kdelibs install 
dir, then DBUS_INTERFACES_INSTALL_DIR will point to that other directory.

What you would have to do correctly is to check whether the respective 
packages are installed, and then use the variables provided by these 
find-modules to refer to the xml files.

So for the screensaver this would be:

find_package(KDE4Workspace)
set(screensaver_xml
    ${KDE4WORKSPACE_DBUS_INTERFACES_DIR}/org.freedesktop.ScreenSaver.xml)

Similarly for the other three files.
I'm not sure there is already a FindKDENetwork.cmake file. kmail.xml probably 
comes from kdepim(libs), but somehow I couldn't just find it there.

Alex


More information about the Kde-buildsystem mailing list