diff options
author | Andrew Gvozdev | 2012-05-29 21:36:32 +0000 |
---|---|---|
committer | Andrew Gvozdev | 2012-05-29 21:41:40 +0000 |
commit | 1bcae4bb9b9eec6b98252a64464115c00028f423 (patch) | |
tree | 1852654d82851cb1cdbbe637c05aa0fe7c3bca30 /core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/errorparsers | |
parent | fe5f6d43f25753ca501173901ddc30eb2f6faa51 (diff) | |
download | org.eclipse.cdt-1bcae4bb9b9eec6b98252a64464115c00028f423.tar.gz org.eclipse.cdt-1bcae4bb9b9eec6b98252a64464115c00028f423.tar.xz org.eclipse.cdt-1bcae4bb9b9eec6b98252a64464115c00028f423.zip |
bug 380956: The CDT GCC Build Output Parser should not require 'make's recursion depth indicators
Diffstat (limited to 'core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/errorparsers')
-rw-r--r-- | core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/errorparsers/CWDLocator.java | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/errorparsers/CWDLocator.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/errorparsers/CWDLocator.java index e1324c82e04..ce6125841c4 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/errorparsers/CWDLocator.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/errorparsers/CWDLocator.java @@ -24,14 +24,14 @@ import org.eclipse.core.runtime.Path; */ public class CWDLocator extends AbstractErrorParser { private static boolean enabled = true; - + @Override public boolean processLine(String line, ErrorParserManager manager) { int lineNumber = manager.getLineCounter(); // enable on first line (can be previously disabled if processed parallel build) if (lineNumber==1) enabled = true; - + if (enabled) return super.processLine(line, manager); return false; @@ -53,7 +53,8 @@ public class CWDLocator extends AbstractErrorParser { } return false; } - }, new ErrorPattern("make\\[(.*)\\]: Entering directory `(.*)'", 0, 0) { //$NON-NLS-1$ + }, + new ErrorPattern("make\\[(.*)\\]: Entering directory `(.*)'", 0, 0) { //$NON-NLS-1$ @Override protected boolean recordError(Matcher matcher, ErrorParserManager eoParser) { int level; @@ -74,7 +75,17 @@ public class CWDLocator extends AbstractErrorParser { eoParser.pushDirectory(new Path(dir)); return true; } - }, new ErrorPattern("make\\[.*\\]: Leaving directory", 0, 0) { //$NON-NLS-1$ + }, + // This is emitted by GNU make using options -n, --just-print or -w, --print-directory. + new ErrorPattern("make: Entering directory `(.*)'", 0, 0) { //$NON-NLS-1$ + @Override + protected boolean recordError(Matcher matcher, ErrorParserManager eoParser) { + String dir = matcher.group(1); + eoParser.pushDirectory(new Path(dir)); + return true; + } + }, + new ErrorPattern("make(\\[.*\\])?: Leaving directory", 0, 0) { //$NON-NLS-1$ @Override protected boolean recordError(Matcher matcher, ErrorParserManager eoParser) { eoParser.popDirectoryURI(); |