diff options
author | Andrew Knight <andrew.knight@intopalo.com> | 2016-12-01 08:44:36 +0200 |
---|---|---|
committer | Morten Johan Sørvig <morten.sorvig@qt.io> | 2017-10-27 11:52:36 +0000 |
commit | 8307b29a6ed27d3fb2d647b0bc11c0d8d07cfd80 (patch) | |
tree | ca4e31d9c11ad3a7c9caad3e09c1d1df32943064 /src/plugins/platforms/platforms.pro | |
parent | cba24d65c4346d40b9c923308a9f2fd7ecf13863 (diff) |
Introduce mkspec for web assembly
The mkspec and corresponding configuration adjustments make it possible to
build/link the modules in qtbase and run simple applications using the
stock emscripten compiler. Tested cross-compiled (-xplatform emscripten),
but theoretically possible as a native build as well (requiring some
binfmt_misc settings on Linux to run the resulting JS versions of host
tools with node)
*NOTE*: this currently requires passing -no-headersclean, as headersclean
crashes the compiler.
This was done outside of the wip/nacl branch because 1) we can use the new
configure system and 2) most of the nacl patches don't apply to emscripten
builds anyway.
As emscripten can be used to build for raw JavaScript engines (e.g. nodejs)
as well as web browsers, some differentiation between the compiler and the
GUI platform (HTML5) has been added. Furthermore, a hypothetical "html5"
QPA plugin has been referenced.
TODO:
- fix headersclean option
- decide if we should disable pthreads support, as it requires Firefox
and an experimental flag (see
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer)
... leading to either QT_NO_THREAD or an alternate implementation
- break up the unrelated changes better (e.g. separate double-conversion
patch)
- provide better application/lib support for building dynamic libraries
(currently, building an app links in the actual bitcode instead, and
the ports libs are linked into the app instead of the correct Qt lib)
- possibly improve the configure tests rather than selectively disabling
configuration options unsupported by emscripten but for which the
config.tests pass
- check all examples, testcases, modules in other repositories...
- benchmark performance
Change-Id: I80cfa53605896ec8430df0b34bc1bce2c775d97f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Diffstat (limited to 'src/plugins/platforms/platforms.pro')
-rw-r--r-- | src/plugins/platforms/platforms.pro | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/plugins/platforms/platforms.pro b/src/plugins/platforms/platforms.pro index 9ccc2b54b9..618ca500ba 100644 --- a/src/plugins/platforms/platforms.pro +++ b/src/plugins/platforms/platforms.pro @@ -26,7 +26,7 @@ qnx { } qtConfig(eglfs) { - SUBDIRS += eglfs + qtConfig(thread): SUBDIRS += eglfs SUBDIRS += minimalegl } @@ -34,7 +34,7 @@ qtConfig(directfb) { SUBDIRS += directfb } -qtConfig(linuxfb): SUBDIRS += linuxfb +qtConfig(thread): qtConfig(linuxfb): SUBDIRS += linuxfb qtConfig(vnc): SUBDIRS += vnc @@ -46,6 +46,8 @@ haiku { SUBDIRS += haiku } +emscripten: SUBDIRS = html5 + qtConfig(mirclient): SUBDIRS += mirclient qtConfig(integrityfb): SUBDIRS += integrity |