Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-98808

QtWayland dev branch no longer compiles against QtBase dev branch

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P3: Somewhat important
    • None
    • 6.3.0 Alpha
    • QPA: Wayland
    • Linux/Wayland
    • cb937aa14a3fc66d3da4bcf07075a7dd00977eb6

    Description

      Hi

      It seems that QtWayland no longer compiles. It seems to be related to some private header

      Here is how I compile QtBase dev

      cmake -Wno-dev .. -DCMAKE_INSTALL_PREFIX=$INSTALLDIR  -DCMAKE_BUILD_TYPE=Release -DINSTALL_BINDIR=lib/qt6/bin -DINSTALL_DOCDIR=share/doc/qt6 -DINSTALL_ARCHDATADIR=lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/qt6 -DINSTALL_DATADIR=share/qt6 -DINSTALL_INCLUDEDIR=include/qt6 -DINSTALL_MKSPECSDIR=lib/qt6/mkspecs -DINSTALL_EXAMPLESDIR=share/doc/qt6/examples \
      -DQT_FEATURE_journald=ON -DQT_FEATURE_openssl_linked=ON -DQT_QPA_DEFAULT_PLATFORM=wayland -DWARNINGS_ARE_ERRORS=OFF -DFEATURE_separate_debug_info=OFF -DQT_BUILD_TESTS=OFF -DFEATURE_optimize_size=ON -DFEATURE_system_sqlite=ON -DFEATURE_dbus=ON -DFEATURE_accessibility=ON

      and here is the snippit from the build error.

      ```
      [ 54%] Building CXX object src/compositor/CMakeFiles/WaylandCompositor.dir/compositor_api/qwaylandpointer.cpp.o 
      In file included from /srcbuild/qt6-qtwayland/src/compositor/compositor_api/qwaylandoutput_p.h:57, 
                       from /srcbuild/qt6-qtwayland/src/compositor/compositor_api/qwaylandoutput.cpp:32: 
      /opt/include/qt6/QtCore/6.3.0/QtCore/private/qobject_p.h: In instantiation of ‘void QtPrivate::assertObjectType(QObjectPrivate*) [with ObjPrivate = QWaylandOutputPrivate]’: 
      /opt/include/qt6/QtCore/qobjectdefs_impl.h:170:34:   required from ‘static void QtPrivate::FunctorCall<QtPrivate::IndexesList<II ...>, QtPrivate::List<Tail ...>, R, SlotRet (Obj::*)(SlotArgs ...)>::call(SlotRet (Obj::*)(SlotArgs .
      ..), Obj*, void**) [with int ...II = {}; SignalArgs = {}; R = void; SlotArgs = {}; SlotRet = void; Obj = QWaylandOutputPrivate]’ 
      /opt/include/qt6/QtCore/qobjectdefs_impl.h:208:95:   required from ‘static void QtPrivate::FunctionPointer<Ret (Obj::*)(Args ...)>::call(QtPrivate::FunctionPointer<Ret (Obj::*)(Args ...)>::Function, Obj*, void**) [with SignalArgs 
      = QtPrivate::List<>; R = void; Obj = QWaylandOutputPrivate; Ret = void; Args = {}; QtPrivate::FunctionPointer<Ret (Obj::*)(Args ...)>::Function = void (QWaylandOutputPrivate::*)()]’ 
      /opt/include/qt6/QtCore/6.3.0/QtCore/private/qobject_p.h:512:49:   required from ‘static void QtPrivate::QPrivateSlotObject<Func, Args, R>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [with Func = void (QWaylan
      dOutputPrivate::*)(); Args = QtPrivate::List<>; R = void]’ 
      /opt/include/qt6/QtCore/6.3.0/QtCore/private/qobject_p.h:522:59:   required from ‘QtPrivate::QPrivateSlotObject<Func, Args, R>::QPrivateSlotObject(Func) [with Func = void (QWaylandOutputPrivate::*)(); Args = QtPrivate::List<>; R =
       void]’ 
      /opt/include/qt6/QtCore/6.3.0/QtCore/private/qobject_p.h:550:9:   required from ‘static QMetaObject::Connection QObjectPrivate::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::Fun
      ctionPointer<Func2>::Object*, Func2, Qt::ConnectionType) [with Func1 = void (QWindow::*)(int); Func2 = void (QWaylandOutputPrivate::*)(); typename QtPrivate::FunctionPointer<Func>::Object = QWindow; typename QtPrivate::FunctionPoi
      nter<Func2>::Object = QWaylandOutputPrivate]’ 
      /srcbuild/qt6-qtwayland/src/compositor/compositor_api/qwaylandoutput.cpp:339:131:   required from here 
      /opt/include/qt6/QtCore/6.3.0/QtCore/private/qobject_p.h:497:84: error: ‘QWaylandOutput* QWaylandOutputPrivate::q_func()’ is private within this context 
        497 |     using Obj = std::remove_pointer_t<decltype(std::declval<ObjPrivate *>()->q_func())>; 
            |                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ 
      In file included from /srcbuild/qt6-qtwayland/build/include/QtWaylandCompositor/../../../src/compositor/global/qtwaylandqmlinclude.h:43, 
                       from /srcbuild/qt6-qtwayland/build/include/QtWaylandCompositor/qtwaylandqmlinclude.h:1, 
                       from /srcbuild/qt6-qtwayland/src/compositor/compositor_api/qwaylandoutput.h:34, 
                       from /srcbuild/qt6-qtwayland/src/compositor/compositor_api/qwaylandoutput.cpp:31: 
      /srcbuild/qt6-qtwayland/src/compositor/compositor_api/qwaylandoutput_p.h:131:5: note: declared private here 
        131 |     Q_DECLARE_PUBLIC(QWaylandOutput) 
            |     ^~~~~~~~~~~~~~~~
      
      
      ```

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            qt.team.graphics.and.multimedia Qt Graphics Team
            nerdopolisturfwalker nerdopolis turfwalker
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes