From 9c56c1f7c2a9aa28eb800d16d783290ff4b55aa4 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Mon, 19 Feb 2024 10:46:20 +0100 Subject: [PATCH] QMake: Fix quoting of WASM's ASYNCIFY_IMPORTS linker option WASM projects failed to link on Windows if "CONFIG += silent" was specified in the .pro file and the build environment did not contain sh.exe. In that case, QMake prepends "@echo linking && " to the link command. The mingw32-make tool then considers this command as "complex command" and runs it through either sh.exe or cmd.exe, depending on whether sh.exe is found in PATH. If cmd.exe is used, the single quotes around the ASYNCIFY_IMPORTS option are passed verbatim to em++. Then em++ thinks 'ASYNCIFY_IMPORTS=qt_asyncify_suspend_js,qt_asyncify_resume_js' is an input file. That file is of course non-existent, and linking fails. Remove the single quotes around the linker option. They are not necessary. Pick-to: 6.5 6.6 6.7 Fixes: QTBUG-122192 Change-Id: Id362b51ac787f7f235bcb3d9102c5dee66ce5768 Reviewed-by: Alexandru Croitor Reviewed-by: Alexey Edelev --- mkspecs/common/wasm/wasm.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkspecs/common/wasm/wasm.conf b/mkspecs/common/wasm/wasm.conf index adad9992006..2a5ea231452 100644 --- a/mkspecs/common/wasm/wasm.conf +++ b/mkspecs/common/wasm/wasm.conf @@ -26,7 +26,7 @@ load(emcc_ver) } # Declare async functions -QMAKE_LFLAGS += -s \'ASYNCIFY_IMPORTS=qt_asyncify_suspend_js,qt_asyncify_resume_js\' +QMAKE_LFLAGS += -s ASYNCIFY_IMPORTS=qt_asyncify_suspend_js,qt_asyncify_resume_js EMCC_COMMON_LFLAGS += \ -s WASM=1 \