MuseScore icon indicating copy to clipboard operation
MuseScore copied to clipboard

[MU4 Issue] [Build] Failed to compile on Linux with BUILD_PCH=OFF

Open Yann-Kaelig opened this issue 2 years ago • 3 comments

Describe the bug The build failed with -DBUILD_PCH=OFF

To Reproduce Steps to reproduce the behavior: 1a. Use -DBUILD_PCH=OFF 1b. In addition the following cmake options are used: -DMUSESCORE_BUILD_CONFIG=release -DCMAKE_C_FLAGS_RELEASE="$CFLAGS" -DCMAKE_CXX_FLAGS_RELEASE="$CXXFLAGS" 2. Compilation failed ( build.log )

Expected behavior The compilation should succeed with -DBUILD_PCH=OFF.

Platform information Operating System: Gentoo Linux 2.9 Qt Version: 5.15.7 Kernel Version: 6.0.11-gentoo-x86_64 (64-bit) Graphics Platform: X11

Yann-Kaelig avatar Dec 19 '22 14:12 Yann-Kaelig

The relevant part of the log:

ia-sound/musescore-4.0.0/work/MuseScore-4.0/thirdparty/KDDockWidgets/src -I/var/tmp/portage/media-sound/musescore-4.0.0/work/MuseScore-4.0_build/thirdparty/KDDockWidgets/src/kddockwidgets_autogen/include -I/usr/include/qt5/QtNetworkAuth -I/usr/include/qt5/QtQuickTemplates2 -I/usr/include/qt5/QtQuickWidgets -I/usr/include/qt5/QtXml -I/usr/include/qt5/QtXmlPatterns -I/usr/include/qt5/QtSvg -I/usr/include/qt5/QtPrintSupport -I/usr/include/qt5/QtOpenGL -I/usr/include/qt5/QtConcurrent -I/var/tmp/portage/media-sound/musescore-4.0.0/work/MuseScore-4.0/thirdparty/freetype/include -I/var/tmp/portage/media-sound/musescore-4.0.0/work/MuseScore-4.0/thirdparty/KDDockWidgets/src/fwd_headers -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtCore -isystem /usr/lib64/qt5/mkspecs/linux-g++ -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtQml -isystem /usr/include/qt5/QtQuick -isystem /usr/include/qt5/QtQmlModels -isystem /usr/include/qt5/QtQuickControls2 -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtGui/5.15.7 -isystem /usr/include/qt5/QtGui/5.15.7/QtGui -isystem /usr/include/qt5/QtCore/5.15.7 -isystem /usr/include/qt5/QtCore/5.15.7/QtCore -isystem /usr/include/qt5/QtX11Extras  -march=amdfam10 -O2 -pipe -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -Wshadow -fvisibility=hidden -Wconversion -fPIC -std=gnu++17 -MD -MT thirdparty/KDDockWidgets/src/CMakeFiles/kddockwidgets.dir/private/quick/LayoutSaverInstantiator.cpp.o -MF CMakeFiles/kddockwidgets.dir/private/quick/LayoutSaverInstantiator.cpp.o.d -o CMakeFiles/kddockwidgets.dir/private/quick/LayoutSaverInstantiator.cpp.o -c /var/tmp/portage/media-sound/musescore-4.0.0/work/MuseScore-4.0/thirdparty/KDDockWidgets/src/private/quick/LayoutSaverInstantiator.cpp
In file included from [01m[K/var/tmp/portage/media-sound/musescore-4.0.0/work/MuseScore-4.0_build/src/workspace/workspace_autogen/mocs_compilation.cpp:2[m[K:
[01m[K/var/tmp/portage/media-sound/musescore-4.0.0/work/MuseScore-4.0_build/src/workspace/workspace_autogen/OTUN7GXZT4/moc_newworkspacemodel.cpp:[m[K In static member function ‘[01m[Kstatic void mu::workspace::NewWorkspaceModel::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)[m[K’:
[01m[K/var/tmp/portage/media-sound/musescore-4.0.0/work/MuseScore-4.0_build/src/workspace/workspace_autogen/OTUN7GXZT4/moc_newworkspacemodel.cpp:163:29:[m[K [01;31m[Kerror: [m[Kvariable ‘[01m[KQVariant _r[m[K’ has initializer but incomplete type
  163 |         case 11: { QVariant [01;31m[K_r[m[K = _t->createWorkspace();
      |                             [01;31m[K^~[m[K
[01m[K/var/tmp/portage/media-sound/musescore-4.0.0/work/MuseScore-4.0_build/src/workspace/workspace_autogen/OTUN7GXZT4/moc_newworkspacemodel.cpp:163:53:[m[K [01;31m[Kerror: [m[Kinvalid use of incomplete type ‘[01m[Kclass QVariant[m[K’
  163 |         case 11: { QVariant _r = [01;31m[K_t->createWorkspace()[m[K;
      |                                  [01;31m[K~~~~~~~~~~~~~~~~~~~^~[m[K
In file included from [01m[K/usr/include/qt5/QtCore/qobject.h:54[m[K,
                 from [01m[K/usr/include/qt5/QtCore/QObject:1[m[K,
                 from [01m[K/var/tmp/portage/media-sound/musescore-4.0.0/work/MuseScore-4.0_build/src/workspace/workspace_autogen/OTUN7GXZT4/../../../../../MuseScore-4.0/src/workspace/view/newworkspacemodel.h:26[m[K,
                 from [01m[K/var/tmp/portage/media-sound/musescore-4.0.0/work/MuseScore-4.0_build/src/workspace/workspace_autogen/OTUN7GXZT4/moc_newworkspacemodel.cpp:10[m[K,
                 from [01m[K/var/tmp/portage/media-sound/musescore-4.0.0/work/MuseScore-4.0_build/src/workspace/workspace_autogen/mocs_compilation.cpp:2[m[K:
[01m[K/usr/include/qt5/QtCore/qmetatype.h:2089:1:[m[K [01;36m[Knote: [m[Kforward declaration of ‘[01m[Kclass QVariant[m[K’
 2089 | [01;36m[KQT_FOR_EACH_STATIC_CORE_CLASS[m[K(QT_FORWARD_DECLARE_STATIC_TYPES_ITER)
      | [01;36m[K^~~~~~~~~~~~~~~~~~~~~~~~~~~~~[m[K

Jojo-Schmitz avatar Dec 19 '22 14:12 Jojo-Schmitz

So pretty clearly a missing #include, one for QVariant it seems, so likely #include <QVariant>

Jojo-Schmitz avatar Dec 19 '22 15:12 Jojo-Schmitz

Yeah, there are maybe even hundreds of missing includes, because nobody of us ever builds without precompiled headers. However I agree that it would be the most correct if building without PCH worked too.

cbjeukendrup avatar Dec 19 '22 15:12 cbjeukendrup