[ANNOUNCE] automoc4 from kdesupport now supported for building KDE

Andras Mantia amantia at kde.org
Sat May 17 23:03:39 CEST 2008


On Sunday 11 May 2008 00:58:38 Alexander Neundorf wrote:
> If you experience any problems with automoc, please let us know at
> kde-buildsystem at kde.org (or here).

Here is a problem: kdebase fails to build if there are some older 
include/solid/control/ifaces around.
The error is:
cd /data/development/build/kde-trunk/kdebase/workspace/solid/networkmanager-0.7 
&& /opt/kde4/bin/automoc4 /data/development/build/kde-trunk/kdebase/workspace/solid/networkmanager-0.7/solid_networkmanager07_automoc.cpp /data/development/sources/kde-trunk/kdebase/workspace/solid/networkmanager-0.7 /data/development/build/kde-trunk/kdebase/workspace/solid/networkmanager-0.7 /opt/qt4/bin/moc
[....]
Generating /data/development/build/kde-trunk/kdebase/workspace/solid/networkmanager-0.7/networkinterface.moc 
from /data/development/sources/kde-trunk/kdebase/workspace/solid/networkmanager-0.7/networkinterface.h
/data/development/sources/kde-trunk/kdebase/workspace/solid/networkmanager-0.7/manager.h:35: 
Error: Undefined interface
[...]
automoc4: process 
for /data/development/build/kde-trunk/kdebase/workspace/solid/networkmanager-0.7/manager.moc 
failed: Unknown error
pid to wait for: 0
processes in queue: 11


The problem is this line in manager.h:
#include <solid/control/ifaces/networkmanager.h>

This picks up the installed networkmanager.h instead of the one from 
kdebase/workspace/libs/solid/control/ifaces .

I tried to add 
   ${CMAKE_SOURCE_DIR}/workspace/libs
to the include_directories, but seems that this is ignored or searched after 
the system path.

So the solution to build kdebase is to remove your installed version and build 
again.This also does not work if e.g you have KDE 4.0.x installed in /usr 
like it is on openSUSE. So you have to:
- remove the old files (e.g from /opt/kde4/include if KDE trunk was installed 
there)
- build AND install kdebase/workspace/libs/solid (so the correct headers are 
installed to /opt/kde4)
- build now kdebase/workspace/solid

I find this behavior broken, automoc4 should find the header files that are in 
kdebase/workspace/libs/solid/control/ifaces as specified by the 
include_directory command.

Andras

-- 
 
Quanta Plus developer - http://quanta.kdewebdev.org
K Desktop Environment - http://www.kde.org


More information about the Kde-buildsystem mailing list