diff options
Diffstat (limited to 'mkspecs/wasm-emscripten/qmake.conf')
-rw-r--r-- | mkspecs/wasm-emscripten/qmake.conf | 73 |
1 files changed, 41 insertions, 32 deletions
diff --git a/mkspecs/wasm-emscripten/qmake.conf b/mkspecs/wasm-emscripten/qmake.conf index c3b67310c8..c80f2bfb92 100644 --- a/mkspecs/wasm-emscripten/qmake.conf +++ b/mkspecs/wasm-emscripten/qmake.conf @@ -5,6 +5,17 @@ QMAKE_PLATFORM = wasm unix include(../common/gcc-base.conf) include(../common/clang.conf) +load(device_config) + +# 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 +} + EMTERP_FLAGS = \ -s EMTERPRETIFY=1 \ -s EMTERPRETIFY_ASYNC=1 \ @@ -12,22 +23,17 @@ EMTERP_FLAGS = \ -s ASSERTIONS=1 \ --profiling-funcs -EMCC_COMMON_CFLAGS = \ - -s USE_LIBPNG=1 \ - -s USE_FREETYPE=1 \ - -s USE_ZLIB=1 - EMCC_COMMON_LFLAGS = \ -s WASM=1 \ -s FULL_ES2=1 \ - -s ALLOW_MEMORY_GROWTH=1 \ -s USE_WEBGL2=1 \ -s NO_EXIT_RUNTIME=0 \ -s ERROR_ON_UNDEFINED_SYMBOLS=1 \ --bind \ - -s \"BINARYEN_METHOD=\'native-wasm\'\" \ -s \"BINARYEN_TRAP_MODE=\'clamp\'\" +# The -s arguments can also be used with release builds, +# but are here in debug for clarity. EMCC_COMMON_LFLAGS_DEBUG = \ $$EMCC_COMMON_LFLAGS \ -s ASSERTIONS=2 \ @@ -38,34 +44,40 @@ EMCC_COMMON_LFLAGS_DEBUG = \ # -s SOCKET_DEBUG \ #print out socket,network data transfer -s GL_DEBUG=1 -# the -s arguments can also be used with release builds -# but here in debug for clarity +# Set up debug/optimization flags +QMAKE_CXXFLAGS_RELEASE -= -O2 +QMAKE_CFLAGS_RELEASE -= -O2 +equals(WASM_OBJECT_FILES, 1) { + QMAKE_LFLAGS_DEBUG += -g + + QMAKE_CXXFLAGS_RELEASE += -O3 + QMAKE_CFLAGS_RELEASE += -O3 + QMAKE_LFLAGS_RELEASE += -O3 + QMAKE_CFLAGS_OPTIMIZE += -O3 + QMAKE_CFLAGS_OPTIMIZE_FULL += -Oz +} else { + # Practical debugging setup: + # "-g4" preserves function names for stack traces + # "-Os" produces reasonably sized binaries + QMAKE_CFLAGS_DEBUG -= -g + QMAKE_CXXFLAGS_DEBUG -= -g + QMAKE_CFLAGS_DEBUG += -Os -g4 + QMAKE_CXXFLAGS_DEBUG += -Os -g4 + QMAKE_LFLAGS_DEBUG += -Os -g4 + + QMAKE_CXXFLAGS_RELEASE += -O3 + QMAKE_CFLAGS_RELEASE += -O3 + QMAKE_LFLAGS_RELEASE += -O3 + QMAKE_CFLAGS_OPTIMIZE += -O3 + QMAKE_CFLAGS_OPTIMIZE_FULL += -Oz +} + QMAKE_COMPILER += emscripten QMAKE_CC = emcc QMAKE_CXX = em++ -QMAKE_CFLAGS += $$EMCC_COMMON_CFLAGS -QMAKE_CXXFLAGS += $$EMCC_COMMON_CFLAGS - -# Practical debugging setup: -# "-g4" preserves function names for stack traces -# "-Os" produces reasonably sized binaries -QMAKE_CFLAGS_DEBUG -= -g -QMAKE_CXXFLAGS_DEBUG -= -g -QMAKE_CFLAGS_DEBUG += -Os -g4 -QMAKE_CXXFLAGS_DEBUG += -Os -g4 -QMAKE_LFLAGS_DEBUG += -Os -g4 - -QMAKE_CXXFLAGS_RELEASE -= -O2 -QMAKE_CXXFLAGS_RELEASE += -O3 -QMAKE_CFLAGS_RELEASE -= -O2 -QMAKE_CFLAGS_RELEASE += -O3 -QMAKE_LFLAGS_RELEASE += -O3 -MAKE_CFLAGS_OPTIMIZE += -O3 -MAKE_CFLAGS_OPTIMIZE_FULL += -Oz - QMAKE_LINK = $$QMAKE_CXX QMAKE_LINK_SHLIB = $$QMAKE_CXX QMAKE_LINK_C = $$QMAKE_CC @@ -84,7 +96,4 @@ QMAKE_EXTENSION_STATICLIB = a # llvm bitcode QMAKE_AR = emar cqs QMAKE_DISTCLEAN += *.html *.js *.wasm -QT_QPA_DEFAULT_PLATFORM = wasm - -QTPLUGIN.platforms = wasm load(qt_config) |