Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Building from source, yet still no QtWebEngine



  • As you have probably gathered from my previous questions, I'm trying to build Qt from the source so that I can have a 32 bit WebEngine on Windows. The only way to do this is to build it from source using the 64bit MSVC compiler to generate 32 bit binaries. But after following the steps found in these various places:

    https://doc.qt.io/qt-5/build-sources.html
    https://doc.qt.io/qt-5/configure-options.html
    https://doc.qt.io/qt-5/windows-requirements.html
    https://doc.qt.io/qt-5/windows-building.html
    https://doc.qt.io/qt-5/qtwebengine-platform-notes.html

    I still don't get any WebEngine DLLs built. I use this configuration line:

    %_ROOT%\configure -prefix %_ROOT%\..\5.12 -nomake examples -nomake tests -opensource -opengl dynamic -confirm-license
    

    And i think I have all the prerequisites, but still nothing in the QtWebEngine folder. I see some things about using git. I am using the Qt 5.12.1 source tar ball. Is the QtWebEngine source not found in there? I don't seem to get any errors when I build with jom but still no QtWebEngine. Anyway I can just build that module to see what happens?

    Jonathan


  • Lifetime Qt Champion

    Hi,

    Did you check the configure logs so see where it failed for QtWebEngine ?



  • I will, but I just wanted to make sure I didn't need to download anything else, like Chromium source or something.



  • Okay, I did find an error in the config.log:

    > C:\qt-everywhere-src-5.12.1\qtwebengine\config.tests\winversion\winversion.cpp(30): fatal error C1189: #error:  unsupported Visual Studio version
    > jom: C:\qt-build-lib\config.tests\winversion\Makefile [winversion.obj] Error 2
    test config.qtwebengine_core.tests.webengine-winversion FAILED
    

    It seems odd this didn't show up in the config summary:

    Build type: win32-msvc (i386, CPU features: sse sse2)
    Compiler: msvc 191627027
    Configuration: sse2 aesni sse3 ssse3 sse4_1 sse4_2 avx avx2 avx512f avx512bw avx512cd avx512dq avx512er avx512ifma avx512pf avx512vbmi avx512vl compile_examples f16c largefile precompile_header rdrnd shani x86SimdAlways shared debug_and_release release debug build_all c++11 c++14 c++1z concurrent dbus no-pkg-config release_tools stl
    Build options:
      Mode ................................... debug and release; default link: debug; optimized tools
      Optimize release build for size ........ no
      Building shared libraries .............. yes
      Using C standard ....................... C89
      Using C++ standard ..................... C++1z
      Using gold linker ...................... no
      Using precompiled headers .............. yes
      Using LTCG ............................. no
      Target compiler supports:
        SSE .................................. SSE2 SSE3 SSSE3 SSE4.1 SSE4.2
        AVX .................................. AVX AVX2
        AVX512 ............................... F ER CD PF DQ BW VL IFMA VBMI
        Other x86 ............................ AES F16C RDRAND SHA
      Build parts ............................ libs tools
      App store compliance ................... no
    Qt modules and options:
      Qt Concurrent .......................... yes
      Qt D-Bus ............................... yes
      Qt D-Bus directly linked to libdbus .... no
      Qt Gui ................................. yes
      Qt Network ............................. yes
      Qt Sql ................................. yes
      Qt Testlib ............................. yes
      Qt Widgets ............................. yes
      Qt Xml ................................. yes
    Support enabled for:
      Using pkg-config ....................... no
      udev ................................... no
      Using system zlib ...................... no
    Qt Core:
      DoubleConversion ....................... yes
        Using system DoubleConversion ........ no
      GLib ................................... no
      iconv .................................. no
      ICU .................................... no
      Tracing backend ........................ <none>
      Logging backends:
        journald ............................. no
        syslog ............................... no
        slog2 ................................ no
      Using system PCRE2 ..................... no
    Qt Network:
      getifaddrs() ........................... no
      IPv6 ifname ............................ no
      libproxy ............................... no
      OpenSSL ................................ no
        Qt directly linked to OpenSSL ........ no
      OpenSSL 1.1 ............................ no
      DTLS ................................... no
      SCTP ................................... no
      Use system proxies ..................... yes
    Qt Gui:
      Accessibility .......................... yes
      FreeType ............................... yes
        Using system FreeType ................ no
      HarfBuzz ............................... yes
        Using system HarfBuzz ................ no
      Fontconfig ............................. no
      Image formats:
        GIF .................................. yes
        ICO .................................. yes
        JPEG ................................. yes
          Using system libjpeg ............... no
        PNG .................................. yes
          Using system libpng ................ no
      EGL .................................... yes
      OpenVG ................................. no
      OpenGL:
        ANGLE ................................ yes
        Combined ANGLE Library ............... no
        Desktop OpenGL ....................... no
        Dynamic OpenGL ....................... yes
        OpenGL ES 2.0 ........................ no
        OpenGL ES 3.0 ........................ no
        OpenGL ES 3.1 ........................ no
        OpenGL ES 3.2 ........................ no
      Vulkan ................................. no
      Session Management ..................... yes
    Features used by QPA backends:
      evdev .................................. no
      libinput ............................... no
      INTEGRITY HID .......................... no
      mtdev .................................. no
      tslib .................................. no
      xkbcommon .............................. no
      X11 specific:
        XLib ................................. no
        EGL on X11 ........................... no
    QPA backends:
      DirectFB ............................... no
      EGLFS .................................. no
      LinuxFB ................................ no
      VNC .................................... no
      Mir client ............................. no
      Windows:
        Direct 2D ............................ yes
        DirectWrite .......................... yes
        DirectWrite 2 ........................ yes
    Qt Sql:
      SQL item models ........................ yes
    Qt Widgets:
      GTK+ ................................... no
      Styles ................................. Fusion Windows WindowsVista
    Qt PrintSupport:
      CUPS ................................... no
    Qt Sql Drivers:
      DB2 (IBM) .............................. no
      InterBase .............................. no
      MySql .................................. no
      OCI (Oracle) ........................... no
      ODBC ................................... yes
      PostgreSQL ............................. no
      SQLite2 ................................ no
      SQLite ................................. yes
        Using system provided SQLite ......... no
      TDS (Sybase) ........................... no
    Qt Testlib:
      Tester for item models ................. yes
    Qt SerialBus:
      Socket CAN ............................. no
      Socket CAN FD .......................... no
    Qt QML:
      QML network support .................... yes
      QML debugging and profiling support .... yes
      QML sequence object .................... yes
      QML list model ......................... yes
      QML XML http request ................... yes
      QML Locale ............................. yes
      QML delegate model ..................... yes
    Qt Quick:
      Direct3D 12 ............................ yes
      AnimatedImage item ..................... yes
      Canvas item ............................ yes
      Support for Qt Quick Designer .......... yes
      Flipable item .......................... yes
      GridView item .......................... yes
      ListView item .......................... yes
      TableView item ......................... yes
      Path support ........................... yes
      PathView item .......................... yes
      Positioner items ....................... yes
      Repeater item .......................... yes
      ShaderEffect item ...................... yes
      Sprite item ............................ yes
    Qt Scxml:
      ECMAScript data model for QtScxml ...... yes
    Qt Bluetooth:
      BlueZ .................................. no
      BlueZ Low Energy ....................... no
      Linux Crypto API ....................... no
      WinRT Bluetooth API (desktop & UWP) .... yes
    Qt Sensors:
      sensorfw ............................... no
    Qt Positioning:
      Gypsy GPS Daemon ....................... no
      WinRT Geolocation API .................. yes
    Qt Location:
      Qt.labs.location experimental QML plugin . yes
      Geoservice plugins:
        OpenStreetMap ........................ yes
        HERE ................................. yes
        Esri ................................. yes
        Mapbox ............................... yes
        MapboxGL ............................. no
        Itemsoverlay ......................... yes
    QtXmlPatterns:
      XML schema support ..................... yes
    Qt Multimedia:
      ALSA ................................... no
      GStreamer 1.0 .......................... no
      GStreamer 0.10 ......................... no
      Video for Linux ........................ no
      OpenAL ................................. no
      PulseAudio ............................. no
      Resource Policy (libresourceqt5) ....... no
      Windows Audio Services ................. yes
      DirectShow ............................. yes
      Windows Media Foundation ............... yes
      Media player backend ................... DirectShow
    Qt Tools:
      QDoc ................................... no
    Qt WebEngine:
      Embedded build ......................... no
      Pepper Plugins ......................... yes
      Printing and PDF ....................... yes
      Proprietary Codecs ..................... no
      Spellchecker ........................... yes
      Native Spellchecker .................... no
      WebRTC ................................. yes
      Use System Ninja ....................... no
      Geolocation ............................ yes
      WebChannel support ..................... yes
      Use v8 snapshot ........................ yes
      Kerberos Authentication ................ yes
    
    

    I think the bit about "Embedded build: no" just means it isn't building for an embedded Linux, not for a WebEngine to embed in an app. I updated my MSVC 2017 with the latest service packs and it seems like it is working now. So it is probably a configuration bug that it doesn't report WebEngine won't be built.

    Just an FYI for anyone else who wants to try this Herculean task - we got a 16 core, 32bg Amazon Instance (a c5 4xlarge) and the build, using this config line:

    %_ROOT%\configure -prefix %_ROOT%\..\5.12.1-32-release -nomake examples -nomake tests -skip qtandroidextras -skip qtgamepad -skip qtmacextras -skip qtquickcontrols -skip qt3d -skip qtcanvas3d -skip qtx11extras -skip qtactiveqt -skip qtcharts -skip qtdatavis3d -skip qtpurchasing -skip qtquickcontrols2 -skip qtvirtualkeyboard -skip qtwayland -opensource -opengl dynamic -confirm-license -make-tool jom
    

    So you see, I'm not building a bunch of pieces that we don't use.

    This took 20 minutes without WebEngine and 120 minutes with WebEngine. On my older dual 3ghz Xeon machine, the one sans WebEngine took 5 hours. I'll let you do the math for how long it would probably take with it. And this is using jom!

    Thanks again to SGaist for all your help!

    Jonathan


Log in to reply