Detect errors from broken Perl scripts
authorEd Swartz <ed.swartz@nokia.com>
Wed, 16 Dec 2009 15:24:45 -0600
changeset 691 ad1de800b4ba
parent 685 dabe5b8e3aec
child 692 f0300fd91528
Detect errors from broken Perl scripts
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/error/parsers/CarbideMakeErrorParser.java
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/error/parsers/CarbideMakeErrorParser.java	Mon Dec 14 13:06:58 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/error/parsers/CarbideMakeErrorParser.java	Wed Dec 16 15:24:45 2009 -0600
@@ -34,6 +34,7 @@
 	private static String cantLaunchProcess = "CreateProcess((null)";
 	private static String rvctNotInstalled = "RVCT0_0.H: No such file or directory";
 	
+	private static Pattern PERL_ERROR_PATTERNS = Pattern.compile("Can't locate .*\\.pm in.*|BEGIN failed--.*"); //$NON-NLS-1$
 	
 	public boolean processLine(String line, ErrorParserManager eoParser) {
 		
@@ -116,6 +117,15 @@
 			return true;
 		}
 		
+		// Detect problems with Symbian build scripts, most of which use Perl
+		matcher = PERL_ERROR_PATTERNS.matcher(line);
+		if (matcher.matches()) {
+			msgSeverity = IMarkerGenerator.SEVERITY_ERROR_BUILD;
+			msgLineNumber = -1;
+			eoParser.generateMarker(rsrc, msgLineNumber, line, msgSeverity, null);
+			return true;
+		}
+
 		return false;
 	}