summaryrefslogtreecommitdiffstats
path: root/mkspecs/wasm-emscripten/qmake.conf
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs/wasm-emscripten/qmake.conf')
-rw-r--r--mkspecs/wasm-emscripten/qmake.conf28
1 files changed, 16 insertions, 12 deletions
diff --git a/mkspecs/wasm-emscripten/qmake.conf b/mkspecs/wasm-emscripten/qmake.conf
index e6a9773482..18562621ac 100644
--- a/mkspecs/wasm-emscripten/qmake.conf
+++ b/mkspecs/wasm-emscripten/qmake.conf
@@ -8,17 +8,20 @@ include(../common/clang.conf)
load(device_config)
load(emcc_ver)
-# Support setting WASM_OBJECT_FILES with -device-option WASM_OBJECT_FILES=1
-!isEmpty(WASM_OBJECT_FILES): {
- !equals(WASM_OBJECT_FILES, 1):!equals(WASM_OBJECT_FILES, 0): \
- message(Error: The value for WASM_OBJECT_FILES must be 0 or 1)
- QMAKE_CFLAGS += -s WASM_OBJECT_FILES=$$WASM_OBJECT_FILES
- QMAKE_CXXFLAGS += -s WASM_OBJECT_FILES=$$WASM_OBJECT_FILES
- QMAKE_LFLAGS += -s WASM_OBJECT_FILES=$$WASM_OBJECT_FILES
-} else {
- EMSCRIPTEN_VERSION=$$qtSystemEmccVersion()
- lessThan(EMSCRIPTEN_VERSION, 1.39) {
- EMCC_COMMON_LFLAGS += -s \"BINARYEN_TRAP_MODE=\'clamp\'\"
+# Support enabling asyncify by configuring with "-device-option EMSCRIPTEN_ASYNCIFY=1"
+!isEmpty(EMSCRIPTEN_ASYNCIFY): {
+ !equals(EMSCRIPTEN_ASYNCIFY, 1):!equals(EMSCRIPTEN_ASYNCIFY, 0): \
+ message(Error: The value for EMSCRIPTEN_ASYNCIFY must be 0 or 1)
+ equals(EMSCRIPTEN_ASYNCIFY, 1): {
+ QMAKE_CFLAGS += -DQT_HAVE_EMSCRIPTEN_ASYNCIFY
+ QMAKE_CXXFLAGS += -DQT_HAVE_EMSCRIPTEN_ASYNCIFY
+ QMAKE_LFLAGS += -s ASYNCIFY
+
+ # Emscripten recommends building with optimizations when using asyncify
+ # in order to reduce wasm file size, and may also generate broken wasm
+ # (with "wasm validation error: too many locals" type errors) if optimizations
+ # are omitted. Enable optimizations also for debug builds.
+ QMAKE_LFLAGS_DEBUG += -Os
}
}
@@ -37,7 +40,8 @@ EMCC_COMMON_LFLAGS += \
-s NO_EXIT_RUNTIME=0 \
-s ERROR_ON_UNDEFINED_SYMBOLS=1 \
-s EXTRA_EXPORTED_RUNTIME_METHODS=[\"UTF16ToString\",\"stringToUTF16\"] \
- --bind
+ --bind \
+ -s FETCH=1
# The -s arguments can also be used with release builds,
# but are here in debug for clarity.