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

[qtbase] Build failure in wayland plugin with -no-opengl

XMLWordPrintable

    • Linux/Wayland
    • 419da4880 (dev), c793c4b17 (6.10), 738a49173 (6.10.0)

      Multiple errors of the form:

      FAILED: qtbase/src/plugins/platforms/wayland/CMakeFiles/WaylandClient.dir/qwaylandintegration.cpp.o
      /usr/bin/ccache /usr/bin/clang++ -DQT_ASCII_CAST_WARNINGS -DQT_BUILDING_QT -DQT_BUILD_WAYLANDCLIENT_LIB -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS -DQT_EXPLICIT_QFILE_CONSTRUCTION_FROM_PATH -DQT_GUI_LIB -DQT_LEAN_HEADERS=1 -DQT_MOC_COMPAT -DQT_NO_CAST_TO_ASCII -DQT_NO_EXCEPTIONS -DQT_NO_FOREACH -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_QASCONST -DQT_NO_QEXCHANGE -DQT_NO_QSNPRINTF -DQT_NO_STD_FORMAT_SUPPORT -DQT_STRICT_QLIST_ITERATORS -DQT_USE_QSTRINGBUILDER -DQT_WAYLANDGLOBAL_LIB -DWaylandClient_EXPORTS -D_GLIBCXX_ASSERTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I/home/moss/qt/build-ozone-noopengl-base/qtbase/src/plugins/platforms/wayland/WaylandClient_autogen/include -I/home/moss/qt/build-ozone-noopengl-base/qtbase/include -I/home/moss/qt/build-ozone-noopengl-base/qtbase/include/QtWaylandClient -I/home/moss/qt/qt6/qtbase/src/plugins/platforms/wayland -I/home/moss/qt/build-ozone-noopengl-base/qtbase/src/plugins/platforms/wayland -I/home/moss/qt/qt6/qtbase/src/plugins/platforms/wayland/shared-I/home/moss/qt/qt6/qtbase/src/plugins/platforms/wayland/global -I/home/moss/qt/qt6/qtbase/src/plugins/platforms/wayland/hardwareintegration -I/home/moss/qt/qt6/qtbase/src/plugins/platforms/wayland/inputdeviceintegration -I/home/moss/qt/qt6/qtbase/src/plugins/platforms/wayland/shellintegration -I/home/moss/qt/build-ozone-noopengl-base/qtbase/include/QtWaylandClient/6.11.0 -I/home/moss/qt/build-ozone-noopengl-base/qtbase/include/QtWaylandClient/6.11.0/QtWaylandClient -I/home/moss/qt/build-ozone-noopengl-base/qtbase/include/QtCore -I/home/moss/qt/qt6/qtbase/mkspecs/linux-clang -I/home/moss/qt/build-ozone-noopengl-base/qtbase/include/QtGui -I/home/moss/qt/build-ozone-noopengl-base/qtbase/src/corelib -I/home/moss/qt/build-ozone-noopengl-base/qtbase/include/QtCore/6.11.0 -I/home/moss/qt/build-ozone-noopengl-base/qtbase/include/QtCore/6.11.0/QtCore -I/home/moss/qt/build-ozone-noopengl-base/qtbase/src/gui -I/home/moss/qt/build-ozone-noopengl-base/qtbase/include/QtGui/6.11.0 -I/home/moss/qt/build-ozone-noopengl-base/qtbase/include/QtGui/6.11.0/QtGui -I/home/moss/qt/build-ozone-noopengl-base/qtbase/include/QtWaylandGlobal -I/home/moss/qt/build-ozone-noopengl-base/qtbase/include/QtWaylandGlobal/6.11.0 -I/home/moss/qt/build-ozone-noopengl-base/qtbase/include/QtWaylandGlobal/6.11.0/QtWaylandGlobal -g -std=gnu++17 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -fPIC -Werror "-Wno-error=#warnings" -Wno-error=deprecated-declarations -Wno-error=deprecated-enum-enum-conversion -Wno-error=deprecated-copy-with-user-provided-copy -Wno-error=unused-but-set-variable -Xclang -fno-pch-timestamp -fcf-protection=full -ftrivial-auto-var-init=pattern -fstack-protector-strong -fno-exceptions -Winvalid-pch -Xclang -include-pch -Xclang /home/moss/qt/build-ozone-noopengl-base/qtbase/src/plugins/platforms/wayland/CMakeFiles/WaylandClient.dir/cmake_pch.hxx.pch -Xclang -include -Xclang /home/moss/qt/build-ozone-noopengl-base/qtbase/src/plugins/platforms/wayland/CMakeFiles/WaylandClient.dir/cmake_pch.hxx -MD -MT qtbase/src/plugins/platforms/wayland/CMakeFiles/WaylandClient.dir/qwaylandintegration.cpp.o -MF qtbase/src/plugins/platforms/wayland/CMakeFiles/WaylandClient.dir/qwaylandintegration.cpp.o.d -o qtbase/src/plugins/platforms/wayland/CMakeFiles/WaylandClient.dir/qwaylandintegration.cpp.o -c /home/moss/qt/qt6/qtbase/src/plugins/platforms/wayland/qwaylandintegration.cpp
      In file included from /home/moss/qt/qt6/qtbase/src/plugins/platforms/wayland/qwaylandintegration.cpp:46:
      /home/moss/qt/qt6/qtbase/src/plugins/platforms/wayland/hardwareintegration/qwaylandclientbufferintegration_p.h:20:10: fatal error: 'QtGui/private/qeglplatformcontext_p.h' file not found
         20 | #include <QtGui/private/qeglplatformcontext_p.h>
            |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      1 error generated.
      

      config.opt contents:

      -prefix
      /opt/qt-ozone-noopengl
      -developer-build
      -ccache
      -linker
      lld
      -make
      tests
      -make
      examples
      -make
      manual-tests
      -prefix
      /opt/qt-default
      -no-opengl
      -skip-tests
      qtbase,qtdeclarative,qthttpserver,qtimageformats,qtlanguageserver,qttools,qtsvg,qtpositioning,qtserialport,qtshadertools,qtwebsockets,qtwebchannel
      -skip-examples
      qthttpserver,qtimageformats,qtlanguageserver,qttools,qtsvg,qtpositioning,qtserialport,qtshadertools,qtwebsockets,qtwebchannel
      -submodules
      qtdeclarative,qtpositioning,qtwebchannel,qthttpserver,qtsvg,qttools
      

      Seems to have been introduced by 7c0a96785fee, I worked around with the following patch:

      diff --git a/src/plugins/platforms/wayland/hardwareintegration/qwaylandclientbufferintegration_p.h b/src/plugins/platforms/wayland/hardwareintegration/qwaylandclientbufferintegration_p.h
      index 3a42dcb62e7..d396479f4de 100644
      --- a/src/plugins/platforms/wayland/hardwareintegration/qwaylandclientbufferintegration_p.h
      +++ b/src/plugins/platforms/wayland/hardwareintegration/qwaylandclientbufferintegration_p.h
      @@ -17,12 +17,16 @@
      
       #include <QtCore/private/qglobal_p.h>
       #include <QtWaylandClient/qtwaylandclientglobal.h>
      +#if QT_CONFIG(opengl)
       #include <QtGui/private/qeglplatformcontext_p.h>
      +#endif // QT_CONFIG(opengl)
      
       QT_BEGIN_NAMESPACE
      
       class QWindow;
      +#if QT_CONFIG(opengl)
       class QOpenGLContext;
      +#endif // QT_CONFIG(opengl)
       class QPlatformOpenGLContext;
       class QSurfaceFormat;
      
      @@ -46,7 +50,9 @@ public:
      
           virtual QWaylandWindow *createEglWindow(QWindow *window) = 0;
           virtual QPlatformOpenGLContext *createPlatformOpenGLContext(const QSurfaceFormat &glFormat, QPlatformOpenGLContext *share) const = 0;
      +#if QT_CONFIG(opengl)
           virtual QOpenGLContext *createOpenGLContext(EGLContext context, EGLDisplay contextDisplay, QOpenGLContext *shareContext) const = 0;
      +#endif // QT_CONFIG(opengl)
      
           enum NativeResource {
               EglDisplay,
      

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

            liaqi Liang Qi
            moheim Moss Heim
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes