Details
-
Bug
-
Resolution: Done
-
Not Evaluated
-
None
-
1.17.0, 1.17.1
-
None
-
Ubuntu 18.04
GCC 7.5.0
Boost 1.72.0
-
-
f4c76e08f24b48e142683cea54b4c64a75083f17 (qbs/qbs/1.18)
Description
QBS 1.17 moc generation got broken for our projects.
You can reproduce it on Release gcc build, boost 1.72.0 using simple header
#pragma once #include <QtCore/QObject> #include <boost/function.hpp> class Test : public QObject { Q_OBJECT };
Compile output:
/home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp:58:13: error: ‘boost::Test’ has not been declared void boost::Test::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) ^~~~ /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp:66:45: error: ‘boost::Test’ has not been declared QT_INIT_METAOBJECT const QMetaObject boost::Test::staticMetaObject = { { ^~~~ /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp:76:27: error: ‘boost::Test’ has not been declared const QMetaObject *boost::Test::metaObject() const ^~~~ /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp:76:46: error: non-member function ‘const QMetaObject* metaObject()’ cannot have cv-qualifier const QMetaObject *boost::Test::metaObject() const ^~~~~ /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp: In function ‘const QMetaObject* metaObject()’: /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp:78:21: error: ‘QScopedPointer<QObjectData> QObject::d_ptr’ is protected within this context return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; ^~~~~ In file included from /home/buildserver/.conan/data/qt/5.15.0/openmedia/default/package/1bade7dedaccd8b7851540e14f0b2584c0d1ca70/include/QtCore/QObject:1:0, from /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/../../../../test/test.h:3, from /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp:10: /home/buildserver/.conan/data/qt/5.15.0/openmedia/default/package/1bade7dedaccd8b7851540e14f0b2584c0d1ca70/include/QtCore/qobject.h:450:33: note: declared protected here QScopedPointer<QObjectData> d_ptr; ^~~~~ /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp:78:21: error: invalid use of non-static data member ‘QObject::d_ptr’ return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; ^~~~~ In file included from /home/buildserver/.conan/data/qt/5.15.0/openmedia/default/package/1bade7dedaccd8b7851540e14f0b2584c0d1ca70/include/QtCore/QObject:1:0, from /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/../../../../test/test.h:3, from /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp:10: /home/buildserver/.conan/data/qt/5.15.0/openmedia/default/package/1bade7dedaccd8b7851540e14f0b2584c0d1ca70/include/QtCore/qobject.h:450:33: note: declared here QScopedPointer<QObjectData> d_ptr; ^~~~~ /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp:78:50: error: ‘QScopedPointer<QObjectData> QObject::d_ptr’ is protected within this context return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; ^~~~~ In file included from /home/buildserver/.conan/data/qt/5.15.0/openmedia/default/package/1bade7dedaccd8b7851540e14f0b2584c0d1ca70/include/QtCore/QObject:1:0, from /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/../../../../test/test.h:3, from /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp:10: /home/buildserver/.conan/data/qt/5.15.0/openmedia/default/package/1bade7dedaccd8b7851540e14f0b2584c0d1ca70/include/QtCore/qobject.h:450:33: note: declared protected here QScopedPointer<QObjectData> d_ptr; ^~~~~ /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp:78:50: error: invalid use of non-static data member ‘QObject::d_ptr’ return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; ^~~~~ In file included from /home/buildserver/.conan/data/qt/5.15.0/openmedia/default/package/1bade7dedaccd8b7851540e14f0b2584c0d1ca70/include/QtCore/QObject:1:0, from /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/../../../../test/test.h:3, from /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp:10: /home/buildserver/.conan/data/qt/5.15.0/openmedia/default/package/1bade7dedaccd8b7851540e14f0b2584c0d1ca70/include/QtCore/qobject.h:450:33: note: declared here QScopedPointer<QObjectData> d_ptr; ^~~~~ /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp: At global scope: /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp:81:14: error: ‘boost::Test’ has not been declared void *boost::Test::qt_metacast(const char *_clname) ^~~~ /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp: In function ‘void* qt_metacast(const char*)’: /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp:85:35: error: invalid use of ‘this’ in non-member function return static_cast<void*>(this); ^~~~ /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp:86:40: error: cannot call member function ‘virtual void* QObject::qt_metacast(const char*)’ without object return QObject::qt_metacast(_clname); ^ /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp: At global scope: /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp:89:12: error: ‘boost::Test’ has not been declared int boost::Test::qt_metacall(QMetaObject::Call _c, int _id, void **_a) ^~~~ /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp: In function ‘int qt_metacall(QMetaObject::Call, int, void**)’: /home/buildserver/Projects/build-test-conan-Debug/Debug_conan_3012411d6b391e96/test.a94a8fe5/qt.headers/moc_test.cpp:91:43: error: cannot call member function ‘virtual int QObject::qt_metacall(QMetaObject::Call, int, void**)’ without object _id = QObject::qt_metacall(_c, _id, _a);
It's a regression from 1.16 version.