diff options
author | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2021-08-05 17:00:30 +0300 |
---|---|---|
committer | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2021-08-16 10:12:18 +0300 |
commit | 2389c5138d99a6ac0caea0f13d2d40f8b5cbc7d3 (patch) | |
tree | 2b8e90ed6248544ead1143508f33921a6c27882c /src/libs/installer | |
parent | f4d1e57345c6c0a052828c1801281012a58a1cef (diff) |
QtPatch: Fix catching non-zero exit codes from "qmake -query"
Also make the detailed output to be shown on the installation
error message box.
Task-number: QTIFW-2273
Change-Id: I9c678a0b382d52a6ff9ba78e0d93118714cc96ae
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'src/libs/installer')
-rw-r--r-- | src/libs/installer/qtpatch.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/libs/installer/qtpatch.cpp b/src/libs/installer/qtpatch.cpp index 89b5dddf6..f72e67867 100644 --- a/src/libs/installer/qtpatch.cpp +++ b/src/libs/installer/qtpatch.cpp @@ -82,14 +82,16 @@ QHash<QString, QByteArray> QtPatch::qmakeValues(const QString &qmakePath, QByteA process.start(qmake.absoluteFilePath(), args, QIODevice::ReadOnly); if (process.waitForFinished(10000)) { QByteArray output = process.readAllStandardOutput(); - qmakeOutput->append(output); - if (process.exitStatus() == QProcess::CrashExit) { - qCWarning(QInstaller::lcInstallerInstallLog) << qmake.absoluteFilePath() << args - << "crashed with exit code" << process.exitCode() - << "standard output:" << output - << "error output:" << process.readAllStandardError(); + if ((process.exitStatus() == QProcess::CrashExit) || (process.exitCode() != EXIT_SUCCESS)) { + QStringList detailedOutput = { qmake.absoluteFilePath() + QLatin1Char(' ') + args.join(QLatin1Char(' ')) + + QString::fromLatin1(" returned with exit code: \"%1\".").arg(QString::number(process.exitCode())) + , QString::fromLatin1("Standard output: \"%1\".").arg(QLatin1String(output)) + , QString::fromLatin1("Error output: \"%1\".").arg(QLatin1String(process.readAllStandardError())) + }; + qmakeOutput->append(detailedOutput.join(QLatin1Char('\n'))); return qmakeValueHash; } + qmakeOutput->append(output); qmakeValueHash = readQmakeOutput(output); } if (qmakeValueHash.isEmpty()) { |