Bug 309718 - Fails to build with cmake 2.8.10
Summary: Fails to build with cmake 2.8.10
Alias: None
Product: Phonon
Classification: Unclassified
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal (vote)
Target Milestone: 4.6.1
Assignee: Harald Sitter
Depends on:
Reported: 2012-11-07 22:14 UTC by Christoph Feck
Modified: 2012-11-09 21:53 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In:


Note You need to log in before you can comment on or make changes to this bug.
Description Christoph Feck 2012-11-07 22:14:24 UTC
If this is a cmake bug, please resolve as downstream.

After update from cmake 2.8.9 to 2.8.10, compiling master:

AUTOMOC: error: process for /local/build/Qt/kdesupport/phonon/declarative/moc_mediaelement.cpp failed:
/local/git/Qt/kdesupport/phonon/declarative/mediaelement.h:55: Error: Undefined interface

AUTOMOC: error: process for /local/build/Qt/kdesupport/phonon/declarative/moc_videooutputelement.cpp failed:
/local/git/Qt/kdesupport/phonon/declarative/videooutputelement.h:54: Error: Undefined interface

moc failed...
make[2]: *** [declarative/CMakeFiles/phononqmlplugin_automoc] Error 1
make[2]: Target `declarative/CMakeFiles/phononqmlplugin_automoc.dir/build' not remade because of errors.
make[1]: *** [declarative/CMakeFiles/phononqmlplugin_automoc.dir/all] Error 2
make[1]: Target `all' not remade because of errors.
make: *** [all] Error 2
make: Target `default_target' not remade because of errors.
-- Failed: Qt/kdesupport/phonon
Comment 1 Harald Sitter 2012-11-08 09:30:25 UTC
Can't reproduce this with their static binary.

Also with Qt 4.8.1 I have...

mediaelement.h:55:    Q_INTERFACES(QDeclarativeParserStatus)

mediaelement.h:26:#include <QtDeclarative/QDeclarativeItem>

QtDeclarative/QDeclarativeItem:1:#include "qdeclarativeitem.h"

QtDeclarative/qdeclarativeitem.h:46:#include <QtDeclarative/qdeclarativeparserstatus.h>

QtDeclarative/qdeclarativeparserstatus.h:69:Q_DECLARE_INTERFACE(QDeclarativeParserStatus, "com.trolltech.qml.QDeclarativeParserStatus")
Comment 2 Christoph Feck 2012-11-08 12:11:33 UTC
> QtDeclarative/qdeclarativeitem.h:46:#include <QtDeclarative/qdeclarativeparserstatus.h>

There's the problem, the Qt 4.8.3 header does not include this one.

I tried with again, and got the same error.
Comment 3 Harald Sitter 2012-11-08 12:37:17 UTC
Git commit f8701371ceb2773ef9d76846532ddf8bef92771c by Harald Sitter.
Committed on 08/11/2012 at 13:37.
Pushed by sitter into branch 'master'.

fix declarative stuff with qt 4.8.3

apparently it is now acceptable to move include statements around

M  +1    -0    declarative/mediaelement.h
M  +1    -0    declarative/videooutputelement.h

Comment 4 Christoph Feck 2012-11-08 13:05:51 UTC
Unfortunately, this does not fix it :/ Going back to cmake 2.8.9 it works.
Comment 5 Harald Sitter 2012-11-08 13:13:25 UTC

please check that the interface is declared in QtDeclarative/qdeclarativeparserstatus.h and if so I am reasonable confident that cmake has a bug
Comment 6 Christoph Feck 2012-11-08 13:20:33 UTC
Yes, it's there. I am going to report it to cmake developers.
Comment 7 Christoph Feck 2012-11-09 11:32:34 UTC