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

QtWebEngine fails to build with Vulkan SDK installed

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: P1: Critical P1: Critical
    • 5.10.0 Alpha
    • 5.10
    • WebEngine
    • None
    • 03bb4fe6b1910603b5cca1a8f9b2e761ac8299a0

      The Gn generator generates include_dirs like this: http://code.qt.io/cgit/qt/qtwebengine.git/tree/mkspecs/features/gn_generator.prf?h=dev#n177

      Starting with Qt 5.10, INCLUDEPATH can also contain things like $(VULKAN_SDK)/include which means the value of the VULKAN_SDK environment variable is picked up and substituted at some point by qmake.

      In case of the Gn generator script, this does not happen whe evaluating $$path, resulting in for example this:

        include_dirs += [
          "C:/work/qtwebengine/src/core",
          "C:/work/qtwebengine/src/core/api",
          "C:/work/qtbase/include",
          "C:/work/qtbase/include/QtQuick",
          "C:/work/qtbase/include/QtGui",
          "C:/work/qtbase/include/QtWebChannel",
          "C:/work/qtbase/include/QtQml",
          "C:/work/qtbase/include/QtNetwork",
          "C:/work/qtbase/include/QtCore",
          "C:/work/qtbase/include/QtQuick/5.10.0",
          "C:/work/qtbase/include/QtQuick/5.10.0/QtQuick",
          "C:/work/qtbase/include/QtGui/5.10.0",
          "C:/work/qtbase/include/QtGui/5.10.0/QtGui",
          "C:/work/qtbase/include/QtQml/5.10.0",
          "C:/work/qtbase/include/QtQml/5.10.0/QtQml",
          "C:/work/qtbase/include/QtCore/5.10.0",
          "C:/work/qtbase/include/QtCore/5.10.0/QtCore",
          "C:/work/qtbase/include/QtWebEngineCore",
          "C:/work/qtbase/include/QtWebEngineCore/5.10.0",
          "C:/work/qtbase/include/QtWebEngineCore/5.10.0/QtWebEngineCore",
          "C:/work/qtwebengine/src/core/Debug_x64/.moc/debug",
          "$(VULKAN_SDK)\include",
          "$(VULKAN_SDK)\include",
          rebase_path("$target_gen_dir/.moc/")
        ]
      

      This means QtWebEngine will not build on any Windows system that has the Vulkan SDK installed.

      We are in the process of changing some CI configs to include the Vulkan SDK for dev (5.10), but this cannot go through until qtwebengine fails to build. See https://codereview.qt-project.org/#/c/197990/ and QTQAINFRA-1186.

      I tried to get the variable substitution to work but failed miserably. Something like

      for (path, INCLUDEPATH): message($$path)
      

      works as expected, but

      for (path, INCLUDEPATH): GN_CONTENTS += "    \"$$path\","
      

      does not.

      Note: this has nothing to do with the actual Vulkan support of Chromium. We do not care about that at this point.

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

            alexandru.croitor Alexandru Croitor
            lagocs Laszlo Agocs
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes