Qt for WebAssembly
Qt for WebAssembly makes it possible to build Qt applications as WebAssembly modules in order to target Web browsers.
Qt for WebAssembly is currently in development. A tech preview release is scheduled for release with Qt 5.11.
This Wiki page is also a work in progress, please see the development tracking bug for more information: https://bugreports.qt.io/browse/QTBUG-63917
Getting the code
qtbase branch: wip/webassembly ( git clone -b wip/webassembly https://code.qt.io/qt/qtbase.git )
qtdeclarative branch: wip/webassembly ( git clone -b wip/webassembly https://code.qt.io/qt/qtdeclarative.git )
Building Qt
Requirements: Emscripten (known-good version: 1.37.33)
Supported host dev platforms: linux, macOS (Windows is not currently supported)
./configure -xplatform emscripten -confirm-license -opensource -developer-build -release -static -no-thread -nomake tests -nomake examples -no-dbus -no-headersclean -no-feature-networkinterface -system-libpng -no-ssl -no-warnings-are-errors
make
Building and running applications
/path/to/qmake && make
Start a web server (e.g. "python -m SimpleHTTPServer"), open e.g. localhost:8000/appname.html in a web browser. We test on Chrome, Firefox, and Safari (all desktop). Firefox (nightly) currently has the most performant wasm compiler, and is recommended for dev work.
You can also use:
/path/to/emscripten/emrun --browser=firefox appname.html
Known issues
It is not currently possible to use Windows as a host platform. You can find a full list of known issues here: https://bugreports.qt.io/browse/QTBUG-63917