diff options
Diffstat (limited to 'mkspecs/wasm-emscripten/qmake.conf')
-rw-r--r-- | mkspecs/wasm-emscripten/qmake.conf | 28 |
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. |