qmake: Enforce linker response files for WebAssembly on Windows

Set QMAKE_REPONSEFILE_THRESHOLD to 1 in the WebAssembly mkspec to
enforce the usage of linker response files.  This fixes "The command
line is too long." errors when linking user projects that depend on many
libraries, for example projects using QtQuickControls2.

Fixes: QTBUG-100559
Change-Id: I2f03f0756c9f171bc7382940fa0f8079bdb75a00
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 95457ba8e79469e8a0fa44ec41c027358f14d831)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Joerg Bornemann 2022-02-18 09:03:41 +01:00 committed by Qt Cherry-pick Bot
parent d552565a53
commit 48d2f3991c

View File

@ -78,8 +78,7 @@ QMAKE_EXTENSION_STATICLIB = a # llvm bitcode
QMAKE_AR = emar cqs QMAKE_AR = emar cqs
equals(QMAKE_HOST.os, Windows) { equals(QMAKE_HOST.os, Windows) {
QMAKE_LINK_OBJECT_MAX = 10 QMAKE_RESPONSEFILE_THRESHOLD = 1
QMAKE_LINK_OBJECT_SCRIPT = object_script
QMAKE_AR_CMD = \ QMAKE_AR_CMD = \
"$(file >$(OBJECTS_DIR)/$(TARGET).rsp, $(subst \\,/,$(OBJECTS)))$$escape_expand(\\n\\t)" \ "$(file >$(OBJECTS_DIR)/$(TARGET).rsp, $(subst \\,/,$(OBJECTS)))$$escape_expand(\\n\\t)" \
"$(AR) $(DESTDIR)$(TARGET) @$(OBJECTS_DIR)/$(TARGET).rsp" "$(AR) $(DESTDIR)$(TARGET) @$(OBJECTS_DIR)/$(TARGET).rsp"