summaryrefslogtreecommitdiffstats
path: root/tests/auto/tools/qmake/testcompiler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/tools/qmake/testcompiler.cpp')
-rw-r--r--tests/auto/tools/qmake/testcompiler.cpp25
1 files changed, 23 insertions, 2 deletions
diff --git a/tests/auto/tools/qmake/testcompiler.cpp b/tests/auto/tools/qmake/testcompiler.cpp
index 97c640b28f..4e5dc26eac 100644
--- a/tests/auto/tools/qmake/testcompiler.cpp
+++ b/tests/auto/tools/qmake/testcompiler.cpp
@@ -132,13 +132,34 @@ bool TestCompiler::errorOut()
return false;
}
+// Return the system environment, remove MAKEFLAGS variable in
+// case the CI uses jom passing flags incompatible to nmake
+// or vice versa.
+static inline QStringList systemEnvironment()
+{
+#ifdef Q_OS_WIN
+ static QStringList result;
+ if (result.isEmpty()) {
+ foreach (const QString &variable, QProcess::systemEnvironment()) {
+ if (variable.startsWith(QStringLiteral("MAKEFLAGS="), Qt::CaseInsensitive)) {
+ qWarning("Removing environment setting '%s'", qPrintable(variable));
+ } else {
+ result.push_back(variable);
+ }
+ }
+ }
+#else
+ static const QStringList result = QProcess::systemEnvironment();
+#endif // ifdef Q_OS_WIN
+ return result;
+}
+
bool TestCompiler::runCommand( QString cmdline, bool expectFail )
{
testOutput_.append("Running command: " + cmdline);
QProcess child;
- if (!environment_.empty())
- child.setEnvironment(QProcess::systemEnvironment() + environment_);
+ child.setEnvironment(systemEnvironment() + environment_);
child.start(cmdline);
if (!child.waitForStarted(-1)) {