diff --git a/src/plugins/cmakeprojectmanager/cmakeparser.cpp b/src/plugins/cmakeprojectmanager/cmakeparser.cpp index d31ee71daf2..a06a68f6840 100644 --- a/src/plugins/cmakeprojectmanager/cmakeparser.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeparser.cpp @@ -32,7 +32,7 @@ using namespace CMakeProjectManager; using namespace ProjectExplorer; -const char COMMON_ERROR_PATTERN[] = "^CMake Error at (.*):([0-9]*) \\((.*)\\):"; +const char COMMON_ERROR_PATTERN[] = "^CMake Error at (.*):([0-9]*)( \\((.*)\\))?:"; const char NEXT_SUBERROR_PATTERN[] = "^CMake Error in (.*):"; const char LOCATION_LINE_PATTERN[] = ":(\\d+):(?:(\\d+))?$"; @@ -250,6 +250,20 @@ void Internal::CMakeProjectPlugin::testCMakeParser_data() Utils::FileName(), -1, categoryBuild)) << QString(); + QTest::newRow("cmake error at") + << QString::fromLatin1("CMake Error at CMakeLists.txt:4:\n" + " Parse error. Expected \"(\", got newline with text \"\n" + "\n" + " \".\n") + << OutputParserTester::STDERR + << QString() << QString() + << (QList() + << Task(Task::Error, + QLatin1String("Parse error. Expected \"(\", got newline with text \" \"."), + Utils::FileName::fromUserInput(QLatin1String("CMakeLists.txt")), 4, + categoryBuild)) + << QString(); + QTest::newRow("cmake warning") << QString::fromLatin1("Syntax Warning in cmake code at\n" "/test/path/CMakeLists.txt:9:15\n"