Bug 309718

Summary: Fails to build with cmake 2.8.10
Product: [Frameworks and Libraries] Phonon Reporter: Christoph Feck <cfeck>
Component: generalAssignee: Harald Sitter <sitter>
Status: RESOLVED UPSTREAM    
Severity: normal CC: adaptee, martin.sandsmark, myriam, rdieter, romain.perier
Priority: NOR    
Version: unspecified   
Target Milestone: 4.6.1   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

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 2.8.10.1 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 2.8.10.1 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

http://commits.kde.org/phonon/f8701371ceb2773ef9d76846532ddf8bef92771c
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
Oo

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
http://www.cmake.org/Bug/view.php?id=13667