aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@theqtcompany.com>2015-07-03 12:06:27 +0200
committerTobias Hunger <tobias.hunger@theqtcompany.com>2015-07-06 10:02:12 +0000
commitfee1b34149cf1704c929fe477bffd0b02b2d431b (patch)
treea88b9546b049c3c28156048ecda5e7e7470e8c76
parentc9588aa8779164c2230b5e9d7ad6ba68d79e45b0 (diff)
QMake: Fix parsing of WARNINGS
Handle qmake warnings that start with WARNING: or ERROR: but do not contain any obvious filename. Task-number: QTCREATORBUG-14335 Change-Id: I5b4cedbb7408c74092fb81412cc50b37e4698b7e Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
-rw-r--r--src/plugins/qmakeprojectmanager/qmakeparser.cpp53
1 files changed, 33 insertions, 20 deletions
diff --git a/src/plugins/qmakeprojectmanager/qmakeparser.cpp b/src/plugins/qmakeprojectmanager/qmakeparser.cpp
index c14ae2e525..60ba38bcf8 100644
--- a/src/plugins/qmakeprojectmanager/qmakeparser.cpp
+++ b/src/plugins/qmakeprojectmanager/qmakeparser.cpp
@@ -46,26 +46,6 @@ QMakeParser::QMakeParser() : m_error(QLatin1String("^(.+):(\\d+):\\s(.+)$"))
void QMakeParser::stdError(const QString &line)
{
QString lne = rightTrimmed(line);
- if (lne.startsWith(QLatin1String("Project ERROR:"))) {
- const QString description = lne.mid(15);
- Task task = Task(Task::Error,
- description,
- Utils::FileName() /* filename */,
- -1 /* linenumber */,
- Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM));
- emit addTask(task, 1);
- return;
- }
- if (lne.startsWith(QLatin1String("Project WARNING:"))) {
- const QString description = lne.mid(17);
- Task task = Task(Task::Warning,
- description,
- Utils::FileName() /* filename */,
- -1 /* linenumber */,
- Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM));
- emit addTask(task, 1);
- return;
- }
if (m_error.indexIn(lne) > -1) {
QString fileName = m_error.cap(1);
Task::TaskType type = Task::Error;
@@ -83,6 +63,28 @@ void QMakeParser::stdError(const QString &line)
emit addTask(task, 1);
return;
}
+ if (lne.startsWith(QLatin1String("Project ERROR: "))
+ || lne.startsWith(QLatin1String("ERROR: "))) {
+ const QString description = lne.mid(lne.indexOf(QLatin1Char(':')) + 2);
+ Task task = Task(Task::Error,
+ description,
+ Utils::FileName() /* filename */,
+ -1 /* linenumber */,
+ Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM));
+ emit addTask(task, 1);
+ return;
+ }
+ if (lne.startsWith(QLatin1String("Project WARNING: "))
+ || lne.startsWith(QLatin1String("WARNING: "))) {
+ const QString description = lne.mid(lne.indexOf(QLatin1Char(':')) + 2);
+ Task task = Task(Task::Warning,
+ description,
+ Utils::FileName() /* filename */,
+ -1 /* linenumber */,
+ Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM));
+ emit addTask(task, 1);
+ return;
+ }
IOutputParser::stdError(line);
}
@@ -155,6 +157,17 @@ void QmakeProjectManagerPlugin::testQmakeOutputParsers_data()
categoryBuildSystem))
<< QString();
+ QTest::newRow("qMake warning 2")
+ << QString::fromLatin1("WARNING: Failure to find: blackberrycreatepackagestepconfigwidget.cpp")
+ << OutputParserTester::STDERR
+ << QString() << QString()
+ << (QList<ProjectExplorer::Task>()
+ << Task(Task::Warning,
+ QLatin1String("Failure to find: blackberrycreatepackagestepconfigwidget.cpp"),
+ Utils::FileName(), -1,
+ categoryBuildSystem))
+ << QString();
+
QTest::newRow("qMake warning with location")
<< QString::fromLatin1("WARNING: e:\\QtSDK\\Simulator\\Qt\\msvc2008\\lib\\qtmaind.prl:1: Unescaped backslashes are deprecated.")
<< OutputParserTester::STDERR