aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiguel Costa <miguel.costa@qt.io>2019-10-14 00:01:09 +0200
committerMiguel Costa <miguel.costa@qt.io>2019-10-14 13:33:13 +0000
commitd27ccf4d983bc407ce52b9fc73df9d682da1bcea (patch)
tree79c413929bc38a4320c66a8a541b8c6124887075
parent34eb97b1c1748b4232873bf127ad5f5d51002655 (diff)
Fix "command too long" error with static build of Qt
Fixed a problem where using a static build of Qt would generate a "command too long" error. This error was generated when setting up the build properties that correspond to qmake variables. Task-number: QTVSADDINBUG-671 Change-Id: Id4118d6ae169e480595c18a077af8379acb6ba98 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
-rw-r--r--src/qtmsbuild/qt_vars.targets27
1 files changed, 15 insertions, 12 deletions
diff --git a/src/qtmsbuild/qt_vars.targets b/src/qtmsbuild/qt_vars.targets
index 8cf3f06c..98bbd42e 100644
--- a/src/qtmsbuild/qt_vars.targets
+++ b/src/qtmsbuild/qt_vars.targets
@@ -203,19 +203,22 @@ defined(modules, var) {
#
contains(varNames, LIBS) {
varNames -= LIBS
- nop = "(ECHO>NUL)"
- qtvars.target = qtvars
- qtvars.commands = CMD /V:ON /C \
- \"@ECHO OFF &\
- SET VALUE= &\
- (FOR %%x IN (%24(LIBS)) DO (\
- SET y=%%x&\
- IF NOT \"!y:~0,9!\"==\"/LIBPATH:\"\
- SET VALUE=!y!%3B!VALUE!& $$nop \
- ))&\
- SET PROP=^<Qt_LIBS_^>!VALUE:~0,-2!^</Qt_LIBS_^>&\
- ECHO !PROP!>>$$fileName&\"
+ NL = $$escape_expand("\n")
+ TAB = $$escape_expand("\t")
QMAKE_EXTRA_TARGETS += qtvars
+ qtvars.target = qtvars
+ qtvars.depends = %24(LIBS)
+ qtvars.commands = \
+$$NL%24(LIBS): FORCE\
+$$NL$$TAB@CMD /V:ON /C \"\
+ @ECHO OFF &\
+ SET x=$@&\
+ IF NOT \"!x:~0,9!\"==\"/LIBPATH:\" (\
+ ECHO ^<Qt_LIBS_^>\%24\%24^(Qt_LIBS_^)%3B!x!^</Qt_LIBS_^>>>$$fileName\
+ )\
+ ELSE (\
+ ECHO ^<Qt_LIBPATH_^>\%24\%24^(Qt_LIBPATH_^)%3B!x:~9!^</Qt_LIBPATH_^>>>$$fileName\
+ )\"
}
## Append Qt variables to .props (XML) file