Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Gvozdev2012-03-22 21:53:03 +0000
committerAndrew Gvozdev2012-03-22 21:53:03 +0000
commit362cd87be01de89221ad5a3db9e47a23617a7a57 (patch)
treebfe9f62bd39fd48010886cecd4ce16c8a4c31753 /build/org.eclipse.cdt.make.core
parent32e726817d6f5ccf3bd99a6ea16fcfd81c97acf6 (diff)
downloadorg.eclipse.cdt-362cd87be01de89221ad5a3db9e47a23617a7a57.tar.gz
org.eclipse.cdt-362cd87be01de89221ad5a3db9e47a23617a7a57.tar.xz
org.eclipse.cdt-362cd87be01de89221ad5a3db9e47a23617a7a57.zip
bug 71511: Fixed scanner discovery for minGW
Trim line by scanner discovery console parsers
Diffstat (limited to 'build/org.eclipse.cdt.make.core')
-rw-r--r--build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoConsoleParserFactory.java146
-rw-r--r--build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/AbstractGCCBOPConsoleParser.java4
-rw-r--r--build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/DefaultRunSIProvider.java11
3 files changed, 100 insertions, 61 deletions
diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoConsoleParserFactory.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoConsoleParserFactory.java
index f1f2b9ddd4e..db0634699da 100644
--- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoConsoleParserFactory.java
+++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoConsoleParserFactory.java
@@ -40,60 +40,78 @@ import org.eclipse.core.runtime.Path;
*/
public class ScannerInfoConsoleParserFactory {
- /**
- * Creates a ConsoleOutputStreamSniffer, make builder scanner info console parser
- * and a utility.
- */
- public static ConsoleOutputSniffer getESIProviderOutputSniffer(
- OutputStream outputStream,
- OutputStream errorStream,
- IProject currentProject,
- String providerId,
- IScannerConfigBuilderInfo2 scBuildInfo,
- IScannerInfoCollector collector,
- IMarkerGenerator markerGenerator) {
- return getESIProviderOutputSniffer(outputStream, errorStream, currentProject, new InfoContext(currentProject), providerId, scBuildInfo, collector, markerGenerator);
- }
- /**
- * Creates a ConsoleOutputStreamSniffer, make builder scanner info console parser
- * and a utility.
- */
- public static ConsoleOutputSniffer getESIProviderOutputSniffer(
- OutputStream outputStream,
- OutputStream errorStream,
- IProject currentProject,
- InfoContext context,
- String providerId,
- IScannerConfigBuilderInfo2 scBuildInfo,
- IScannerInfoCollector collector,
- IMarkerGenerator markerGenerator) {
- if (scBuildInfo.isProviderOutputParserEnabled(providerId)) {
- // get the ESIProvider console parser
- SCProfileInstance profileInstance = ScannerConfigProfileManager.getInstance().
- getSCProfileInstance(currentProject, context, scBuildInfo.getSelectedProfileId());
- IScannerInfoConsoleParser clParser = profileInstance.createExternalScannerInfoParser(providerId);
- IPath buildDirectory = MakeBuilderUtil.getBuildDirectory(currentProject, MakeBuilder.BUILDER_ID);
- clParser.startup(currentProject, buildDirectory, collector, markerGenerator);
- // create an output stream sniffer
- return new ConsoleOutputSniffer(outputStream, errorStream, new
- IScannerInfoConsoleParser[] {clParser});
- }
- return null;
- }
+ /**
+ * Creates a ConsoleOutputStreamSniffer, make builder scanner info console parser
+ * and a utility.
+ */
+ public static ConsoleOutputSniffer getESIProviderOutputSniffer(OutputStream outputStream,
+ OutputStream errorStream,
+ IProject project,
+ String id,
+ IScannerConfigBuilderInfo2 info2,
+ IScannerInfoCollector collector,
+ IMarkerGenerator markerGenerator) {
+
+ return getESIProviderOutputSniffer(outputStream, errorStream, project, new InfoContext(project), id, info2, collector, markerGenerator);
+ }
+
+ /**
+ * Creates a ConsoleOutputStreamSniffer, make builder scanner info console parser
+ * and a utility.
+ */
+ public static ConsoleOutputSniffer getESIProviderOutputSniffer(OutputStream outputStream,
+ OutputStream errorStream,
+ IProject project,
+ InfoContext infoContext,
+ String id,
+ IScannerConfigBuilderInfo2 info2,
+ IScannerInfoCollector collector,
+ IMarkerGenerator markerGenerator) {
+
+ IScannerInfoConsoleParser parser = getESIConsoleParser(project, infoContext, id, info2, collector, markerGenerator);
+ if (parser != null) {
+ return new ConsoleOutputSniffer(outputStream, errorStream, new IScannerInfoConsoleParser[] { parser });
+ }
+ return null;
+ }
+
+ /**
+ /* Get the ESIProvider console parser.
+ */
+ public static IScannerInfoConsoleParser getESIConsoleParser(IProject project,
+ InfoContext infoContext,
+ String id,
+ IScannerConfigBuilderInfo2 info2,
+ IScannerInfoCollector collector,
+ IMarkerGenerator markerGenerator) {
+
+ if (info2.isProviderOutputParserEnabled(id)) {
+ SCProfileInstance profileInstance = ScannerConfigProfileManager.getInstance().
+ getSCProfileInstance(project, infoContext, info2.getSelectedProfileId());
+
+ IScannerInfoConsoleParser parser = profileInstance.createExternalScannerInfoParser(id);
+ IPath buildDirectory = MakeBuilderUtil.getBuildDirectory(project, MakeBuilder.BUILDER_ID);
+
+ parser.startup(project, buildDirectory, collector, markerGenerator);
+ return parser;
+ }
+ return null;
+ }
/**
* Creates a ConsoleOutputStreamSniffer, ESI provider scanner info console parser
* and a utility.
*/
public static ConsoleOutputSniffer getMakeBuilderOutputSniffer(
- OutputStream outputStream,
- OutputStream errorStream,
- IProject currentProject,
- IPath workingDirectory,
- IScannerConfigBuilderInfo2 scBuildInfo,
- IMarkerGenerator markerGenerator,
- IScannerInfoCollector collector) {
- return getMakeBuilderOutputSniffer(outputStream, errorStream, currentProject, new InfoContext(currentProject), workingDirectory, scBuildInfo, markerGenerator, collector);
+ OutputStream outputStream,
+ OutputStream errorStream,
+ IProject project,
+ IPath workingDirectory,
+ IScannerConfigBuilderInfo2 info2,
+ IMarkerGenerator markerGenerator,
+ IScannerInfoCollector collector) {
+
+ return getMakeBuilderOutputSniffer(outputStream, errorStream, project, new InfoContext(project), workingDirectory, info2, markerGenerator, collector);
}
/**
@@ -101,14 +119,14 @@ public class ScannerInfoConsoleParserFactory {
* and a utility.
*/
public static ConsoleOutputSniffer getMakeBuilderOutputSniffer(
- OutputStream outputStream,
- OutputStream errorStream,
- IProject project,
- InfoContext infoContext,
- IPath workingDirectory,
- IScannerConfigBuilderInfo2 info2,
- IMarkerGenerator markerGenerator,
- IScannerInfoCollector collector) {
+ OutputStream outputStream,
+ OutputStream errorStream,
+ IProject project,
+ InfoContext infoContext,
+ IPath workingDirectory,
+ IScannerConfigBuilderInfo2 info2,
+ IMarkerGenerator markerGenerator,
+ IScannerInfoCollector collector) {
IScannerInfoConsoleParser parser = getScannerInfoConsoleParserInternal(project, infoContext, workingDirectory, info2, markerGenerator, collector);
if (parser != null) {
@@ -119,8 +137,12 @@ public class ScannerInfoConsoleParserFactory {
return null;
}
- private static IScannerInfoConsoleParser getScannerInfoConsoleParserInternal(IProject project, InfoContext infoContext, IPath workingDirectory,
- IScannerConfigBuilderInfo2 info2, IMarkerGenerator markerGenerator, IScannerInfoCollector collector) {
+ private static IScannerInfoConsoleParser getScannerInfoConsoleParserInternal(IProject project,
+ InfoContext infoContext,
+ IPath workingDirectory,
+ IScannerConfigBuilderInfo2 info2,
+ IMarkerGenerator markerGenerator,
+ IScannerInfoCollector collector) {
IScannerInfoConsoleParser parser = null;
// try {
@@ -166,8 +188,12 @@ public class ScannerInfoConsoleParserFactory {
}
// TODO - perhaps this be unified with the other one?
- public static IScannerInfoConsoleParser getScannerInfoConsoleParser(IProject project, InfoContext infoContext, IPath workingDirectory,
- IScannerConfigBuilderInfo2 info2, IMarkerGenerator markerGenerator, IScannerInfoCollector collector) {
+ public static IScannerInfoConsoleParser getScannerInfoConsoleParser(IProject project,
+ InfoContext infoContext,
+ IPath workingDirectory,
+ IScannerConfigBuilderInfo2 info2,
+ IMarkerGenerator markerGenerator,
+ IScannerInfoCollector collector) {
IScannerInfoConsoleParser parser = null;
if (info2 != null && info2.isAutoDiscoveryEnabled() && info2.isBuildOutputParserEnabled()) {
diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/AbstractGCCBOPConsoleParser.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/AbstractGCCBOPConsoleParser.java
index 26fcd27f749..32b9a9edc81 100644
--- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/AbstractGCCBOPConsoleParser.java
+++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/AbstractGCCBOPConsoleParser.java
@@ -94,6 +94,10 @@ public abstract class AbstractGCCBOPConsoleParser implements IScannerInfoConsole
*/
@Override
public boolean processLine(String line) {
+ line= line.trim();
+ if (line.length() == 0) {
+ return false;
+ }
boolean rc = false;
int lineBreakPos = line.length()-1;
char[] lineChars = line.toCharArray();
diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/DefaultRunSIProvider.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/DefaultRunSIProvider.java
index a88e64bb236..c6c96d541fc 100644
--- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/DefaultRunSIProvider.java
+++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/DefaultRunSIProvider.java
@@ -15,12 +15,14 @@ import java.io.IOException;
import java.net.URI;
import java.util.ArrayList;
import java.util.Enumeration;
+import java.util.List;
import java.util.Properties;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.CommandLauncher;
import org.eclipse.cdt.core.ErrorParserManager;
import org.eclipse.cdt.core.ICommandLauncher;
+import org.eclipse.cdt.core.IConsoleParser;
import org.eclipse.cdt.core.model.ILanguage;
import org.eclipse.cdt.core.resources.IConsole;
import org.eclipse.cdt.internal.core.BuildRunnerHelper;
@@ -33,6 +35,7 @@ import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector;
import org.eclipse.cdt.make.core.scannerconfig.InfoContext;
import org.eclipse.cdt.make.internal.core.MakeMessages;
import org.eclipse.cdt.make.internal.core.scannerconfig.ScannerConfigUtil;
+import org.eclipse.cdt.make.internal.core.scannerconfig.ScannerInfoConsoleParserFactory;
import org.eclipse.cdt.utils.EFSExtensionManager;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
@@ -123,8 +126,14 @@ public class DefaultRunSIProvider implements IExternalScannerInfoProvider {
ErrorParserManager epm = new ErrorParserManager(project, markerGenerator, new String[] {GMAKE_ERROR_PARSER_ID});
+ List<IConsoleParser> parsers = new ArrayList<IConsoleParser>();
+ IConsoleParser parser = ScannerInfoConsoleParserFactory.getESIConsoleParser(project, context, providerId, buildInfo, collector, markerGenerator);
+ if (parser != null) {
+ parsers.add(parser);
+ }
+
buildRunnerHelper.setLaunchParameters(launcher, program, comandLineOptions, workingDirectoryURI, envp );
- buildRunnerHelper.prepareStreams(epm, null, console, new SubProgressMonitor(monitor, 1 * MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));
+ buildRunnerHelper.prepareStreams(epm, parsers, console, new SubProgressMonitor(monitor, 1 * MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));
buildRunnerHelper.greeting(MakeMessages.getFormattedString("ExternalScannerInfoProvider.Greeting", project.getName())); //$NON-NLS-1$
buildRunnerHelper.build(new SubProgressMonitor(monitor, 1 * MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));

Back to the top