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.htmlI 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
-
Hi,
Did you check the configure logs so see where it failed for QtWebEngine ?
-
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