Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java')
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java155
1 files changed, 87 insertions, 68 deletions
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java
index 8abf172ffc8..3ba2b3f361e 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java
@@ -1205,6 +1205,9 @@ public class GeneratedMakefileBuilder extends ACBuilder {
monitor.beginTask("", 1000); //$NON-NLS-1$
monitor.subTask(ManagedMakeMessages.getFormattedString(MAKE, msgs));
+ ConsoleOutputStream consoleOutStream = null;
+ IConsole console = null;
+ OutputStream epmOutputStream = null;
try {
int flags = 0;
IResourceDelta delta = null;
@@ -1220,9 +1223,9 @@ public class GeneratedMakefileBuilder extends ACBuilder {
// Get a build console for the project
StringBuffer buf = new StringBuffer();
- IConsole console = CCorePlugin.getDefault().getConsole();
+ console = CCorePlugin.getDefault().getConsole();
console.start(currentProject);
- ConsoleOutputStream consoleOutStream = console.getOutputStream();
+ consoleOutStream = console.getOutputStream();
String[] consoleHeader = new String[3];
if(buildIncrementaly)
consoleHeader[0] = ManagedMakeMessages.getResourceString(TYPE_INC);
@@ -1246,80 +1249,96 @@ public class GeneratedMakefileBuilder extends ACBuilder {
}
consoleOutStream.write(buf.toString().getBytes());
consoleOutStream.flush();
-
- // Remove all markers for this project
- removeAllMarkers(currentProject);
- // Hook up an error parser manager
- String[] errorParsers = cfg.getErrorParserList();
- ErrorParserManager epm = new ErrorParserManager(getProject(), des.getDefaultBuildDirLocation(), this, errorParsers);
- epm.setOutputStream(consoleOutStream);
- // This variable is necessary to ensure that the EPM stream stay open
- // until we explicitly close it. See bug#123302.
- OutputStream epmOutputStream = epm.getOutputStream();
-
- int status = builder.build(epmOutputStream, epmOutputStream, new SubProgressMonitor(monitor, 1000));
-
- //no refresh is needed since the builder now performs
- //a refresh automatically after each build step
-/* monitor.subTask(ManagedMakeMessages
- .getResourceString(REFRESH));
- try {
- currentProject.refreshLocal(
- IResource.DEPTH_INFINITE, null);
- } catch (CoreException e) {
+ if(builder.getNumCommands() > 0) {
+ // Remove all markers for this project
+ removeAllMarkers(currentProject);
+
+ // Hook up an error parser manager
+ String[] errorParsers = cfg.getErrorParserList();
+ ErrorParserManager epm = new ErrorParserManager(getProject(), des.getDefaultBuildDirLocation(), this, errorParsers);
+ epm.setOutputStream(consoleOutStream);
+ // This variable is necessary to ensure that the EPM stream stay open
+ // until we explicitly close it. See bug#123302.
+ epmOutputStream = epm.getOutputStream();
+
+ int status = builder.build(epmOutputStream, epmOutputStream, new SubProgressMonitor(monitor, 1000));
+
+ // Report either the success or failure of our mission
+ buf = new StringBuffer();
+
+ switch(status){
+ case IBuildModelBuilder.STATUS_OK:
+ buf.append(ManagedMakeMessages
+ .getFormattedString(BUILD_FINISHED,
+ currentProject.getName()));
+ break;
+ case IBuildModelBuilder.STATUS_CANCELLED:
+ buf.append(ManagedMakeMessages
+ .getResourceString(BUILD_CANCELLED));
+ break;
+ case IBuildModelBuilder.STATUS_ERROR_BUILD:
+ String msg = resumeOnErr ?
+ ManagedMakeMessages.getResourceString(BUILD_FINISHED_WITH_ERRS) :
+ ManagedMakeMessages.getResourceString(BUILD_STOPPED_ERR);
+ buf.append(msg);
+ break;
+ case IBuildModelBuilder.STATUS_ERROR_LAUNCH:
+ default:
+ buf.append(ManagedMakeMessages
+ .getResourceString(BUILD_FAILED_ERR));
+ break;
+ }
+ buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$//$NON-NLS-2$
+
+ // Write message on the console
+ consoleOutStream.write(buf.toString().getBytes());
+ consoleOutStream.flush();
+ epmOutputStream.close();
+ epmOutputStream = null;
+ // Generate any error markers that the build has discovered
monitor.subTask(ManagedMakeMessages
- .getResourceString(REFRESH_ERROR));
- }
-*/
- // Report either the success or failure of our mission
- buf = new StringBuffer();
-
- switch(status){
- case IBuildModelBuilder.STATUS_OK:
- buf.append(ManagedMakeMessages
- .getFormattedString(BUILD_FINISHED,
- currentProject.getName()));
- break;
- case IBuildModelBuilder.STATUS_CANCELLED:
- buf.append(ManagedMakeMessages
- .getResourceString(BUILD_CANCELLED));
- break;
- case IBuildModelBuilder.STATUS_ERROR_BUILD:
- String msg = resumeOnErr ?
- ManagedMakeMessages.getResourceString(BUILD_FINISHED_WITH_ERRS) :
- ManagedMakeMessages.getResourceString(BUILD_STOPPED_ERR);
- buf.append(msg);
- break;
- case IBuildModelBuilder.STATUS_ERROR_LAUNCH:
- default:
- buf.append(ManagedMakeMessages
- .getResourceString(BUILD_FAILED_ERR));
- break;
+ .getResourceString(MARKERS));
+ addBuilderMarkers(epm);
+ epm.reportProblems();
+ } else {
+ buf = new StringBuffer();
+ buf.append(ManagedMakeMessages.getFormattedString(NOTHING_BUILT, getProject().getName()));
+ buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$//$NON-NLS-2$
+ consoleOutStream.write(buf.toString().getBytes());
+ consoleOutStream.flush();
}
- buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$//$NON-NLS-2$
- // Write message on the console
- consoleOutStream.write(buf.toString().getBytes());
- consoleOutStream.flush();
- epmOutputStream.close();
-
- // Generate any error markers that the build has discovered
- monitor.subTask(ManagedMakeMessages
- .getResourceString(MARKERS));
- addBuilderMarkers(epm);
- epm.reportProblems();
- consoleOutStream.close();
} catch (Exception e) {
- StringBuffer buf = new StringBuffer();
- String errorDesc = ManagedMakeMessages
- .getResourceString(BUILD_ERROR);
- buf.append(errorDesc);
- buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$//$NON-NLS-2$
- buf.append("(").append(e.getLocalizedMessage()).append(")"); //$NON-NLS-1$ //$NON-NLS-2$
+ if(consoleOutStream != null){
+ StringBuffer buf = new StringBuffer();
+ String errorDesc = ManagedMakeMessages
+ .getResourceString(BUILD_ERROR);
+ buf.append(errorDesc);
+ buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$//$NON-NLS-2$
+ buf.append("(").append(e.getLocalizedMessage()).append(")"); //$NON-NLS-1$ //$NON-NLS-2$
+ buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$//$NON-NLS-2$
+ try {
+ consoleOutStream.write(buf.toString().getBytes());
+ consoleOutStream.flush();
+ } catch (IOException e1) {
+ }
+ }
forgetLastBuiltState();
} finally {
+ if(epmOutputStream != null){
+ try {
+ epmOutputStream.close();
+ } catch (IOException e) {
+ }
+ }
+ if(consoleOutStream != null){
+ try {
+ consoleOutStream.close();
+ } catch (IOException e) {
+ }
+ }
getGenerationProblems().clear();
monitor.done();
}

Back to the top