1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Merge remote-tracking branch 'cdt/master' into sd90

This commit is contained in:
Andrew Gvozdev 2012-03-27 18:42:27 -04:00
commit 3bdc50cd6e
7 changed files with 87 additions and 56 deletions

View file

@ -58,7 +58,10 @@ import org.eclipse.core.runtime.jobs.Job;
*/ */
public class MakeBuilder extends ACBuilder { public class MakeBuilder extends ACBuilder {
public final static String BUILDER_ID = MakeCorePlugin.getUniqueIdentifier() + ".makeBuilder"; //$NON-NLS-1$ public final static String BUILDER_ID = MakeCorePlugin.getUniqueIdentifier() + ".makeBuilder"; //$NON-NLS-1$
private static final int MONITOR_SCALE = 100; private static final int PROGRESS_MONITOR_SCALE = 100;
private static final int TICKS_STREAM_PROGRESS_MONITOR = 1 * PROGRESS_MONITOR_SCALE;
private static final int TICKS_DELETE_MARKERS = 1 * PROGRESS_MONITOR_SCALE;
private static final int TICKS_EXECUTE_COMMAND = 1 * PROGRESS_MONITOR_SCALE;
private BuildRunnerHelper buildRunnerHelper = null; private BuildRunnerHelper buildRunnerHelper = null;
@ -158,7 +161,8 @@ public class MakeBuilder extends ACBuilder {
if (monitor == null) { if (monitor == null) {
monitor = new NullProgressMonitor(); monitor = new NullProgressMonitor();
} }
monitor.beginTask(MakeMessages.getString("MakeBuilder.Invoking_Make_Builder") + project.getName(), 3 * MONITOR_SCALE); //$NON-NLS-1$ monitor.beginTask(MakeMessages.getString("MakeBuilder.Invoking_Make_Builder") + project.getName(), //$NON-NLS-1$
TICKS_STREAM_PROGRESS_MONITOR + TICKS_DELETE_MARKERS + TICKS_EXECUTE_COMMAND);
IPath buildCommand = info.getBuildCommand(); IPath buildCommand = info.getBuildCommand();
if (buildCommand != null) { if (buildCommand != null) {
@ -187,12 +191,12 @@ public class MakeBuilder extends ACBuilder {
parsers.add(parserSD); parsers.add(parserSD);
buildRunnerHelper.setLaunchParameters(launcher, buildCommand, args, workingDirectoryURI, envp); buildRunnerHelper.setLaunchParameters(launcher, buildCommand, args, workingDirectoryURI, envp);
buildRunnerHelper.prepareStreams(epm, parsers, console, new SubProgressMonitor(monitor, 1 * MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK)); buildRunnerHelper.prepareStreams(epm, parsers, console, new SubProgressMonitor(monitor, TICKS_STREAM_PROGRESS_MONITOR, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));
buildRunnerHelper.removeOldMarkers(project, new SubProgressMonitor(monitor, 1 * MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK)); buildRunnerHelper.removeOldMarkers(project, new SubProgressMonitor(monitor, TICKS_DELETE_MARKERS, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));
buildRunnerHelper.greeting(kind); buildRunnerHelper.greeting(kind);
int state = buildRunnerHelper.build(new SubProgressMonitor(monitor, 1 * MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK)); int state = buildRunnerHelper.build(new SubProgressMonitor(monitor, TICKS_EXECUTE_COMMAND, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));
buildRunnerHelper.close(); buildRunnerHelper.close();
buildRunnerHelper.goodbye(); buildRunnerHelper.goodbye();

View file

@ -56,7 +56,10 @@ import org.osgi.service.prefs.BackingStoreException;
public class DefaultRunSIProvider implements IExternalScannerInfoProvider { public class DefaultRunSIProvider implements IExternalScannerInfoProvider {
private static final String GMAKE_ERROR_PARSER_ID = "org.eclipse.cdt.core.GmakeErrorParser"; //$NON-NLS-1$ private static final String GMAKE_ERROR_PARSER_ID = "org.eclipse.cdt.core.GmakeErrorParser"; //$NON-NLS-1$
private static final String PREF_CONSOLE_ENABLED = "org.eclipse.cdt.make.core.scanner.discovery.console.enabled"; //$NON-NLS-1$ private static final String PREF_CONSOLE_ENABLED = "org.eclipse.cdt.make.core.scanner.discovery.console.enabled"; //$NON-NLS-1$
private static final int MONITOR_SCALE = 100;
private static final int PROGRESS_MONITOR_SCALE = 100;
private static final int TICKS_STREAM_PROGRESS_MONITOR = 1 * PROGRESS_MONITOR_SCALE;
private static final int TICKS_EXECUTE_PROGRAM = 1 * PROGRESS_MONITOR_SCALE;
protected IResource resource; protected IResource resource;
protected String providerId; protected String providerId;
@ -97,7 +100,8 @@ public class DefaultRunSIProvider implements IExternalScannerInfoProvider {
if (monitor == null) { if (monitor == null) {
monitor = new NullProgressMonitor(); monitor = new NullProgressMonitor();
} }
monitor.beginTask(MakeMessages.getString("ExternalScannerInfoProvider.Reading_Specs"), 2 * MONITOR_SCALE); //$NON-NLS-1$ monitor.beginTask(MakeMessages.getString("ExternalScannerInfoProvider.Reading_Specs"), //$NON-NLS-1$
TICKS_STREAM_PROGRESS_MONITOR + TICKS_EXECUTE_PROGRAM);
// call a subclass to initialize protected fields // call a subclass to initialize protected fields
if (!initialize()) { if (!initialize()) {
@ -131,12 +135,12 @@ public class DefaultRunSIProvider implements IExternalScannerInfoProvider {
if (parser != null) { if (parser != null) {
parsers.add(parser); parsers.add(parser);
} }
buildRunnerHelper.setLaunchParameters(launcher, program, comandLineOptions, workingDirectoryURI, envp ); buildRunnerHelper.setLaunchParameters(launcher, program, comandLineOptions, workingDirectoryURI, envp );
buildRunnerHelper.prepareStreams(epm, parsers, console, new SubProgressMonitor(monitor, 1 * MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK)); buildRunnerHelper.prepareStreams(epm, parsers, console, new SubProgressMonitor(monitor, TICKS_STREAM_PROGRESS_MONITOR, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));
buildRunnerHelper.greeting(MakeMessages.getFormattedString("ExternalScannerInfoProvider.Greeting", project.getName())); //$NON-NLS-1$ 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)); buildRunnerHelper.build(new SubProgressMonitor(monitor, TICKS_EXECUTE_PROGRAM, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));
buildRunnerHelper.close(); buildRunnerHelper.close();
buildRunnerHelper.goodbye(); buildRunnerHelper.goodbye();

View file

@ -58,7 +58,11 @@ import org.eclipse.core.runtime.SubProgressMonitor;
* @since 8.0 * @since 8.0
*/ */
public class ExternalBuildRunner extends AbstractBuildRunner { public class ExternalBuildRunner extends AbstractBuildRunner {
private static final int MONITOR_SCALE = 100; private static final int PROGRESS_MONITOR_SCALE = 100;
private static final int TICKS_STREAM_PROGRESS_MONITOR = 1 * PROGRESS_MONITOR_SCALE;
private static final int TICKS_DELETE_MARKERS = 1 * PROGRESS_MONITOR_SCALE;
private static final int TICKS_EXECUTE_COMMAND = 1 * PROGRESS_MONITOR_SCALE;
private static final int TICKS_REFRESH_PROJECT = 1 * PROGRESS_MONITOR_SCALE;
@Override @Override
public boolean invokeBuild(int kind, IProject project, IConfiguration configuration, public boolean invokeBuild(int kind, IProject project, IConfiguration configuration,
@ -79,7 +83,8 @@ public class ExternalBuildRunner extends AbstractBuildRunner {
if (monitor == null) { if (monitor == null) {
monitor = new NullProgressMonitor(); monitor = new NullProgressMonitor();
} }
monitor.beginTask(ManagedMakeMessages.getResourceString("MakeBuilder.Invoking_Make_Builder") + project.getName(), 4 * MONITOR_SCALE); //$NON-NLS-1$ monitor.beginTask(ManagedMakeMessages.getResourceString("MakeBuilder.Invoking_Make_Builder") + project.getName(), //$NON-NLS-1$
TICKS_STREAM_PROGRESS_MONITOR + TICKS_DELETE_MARKERS + TICKS_EXECUTE_COMMAND + TICKS_REFRESH_PROJECT);
IPath buildCommand = builder.getBuildCommand(); IPath buildCommand = builder.getBuildCommand();
if (buildCommand != null) { if (buildCommand != null) {
@ -114,17 +119,17 @@ public class ExternalBuildRunner extends AbstractBuildRunner {
} }
buildRunnerHelper.setLaunchParameters(launcher, buildCommand, args, workingDirectoryURI, envp); buildRunnerHelper.setLaunchParameters(launcher, buildCommand, args, workingDirectoryURI, envp);
buildRunnerHelper.prepareStreams(epm, parsers, console, new SubProgressMonitor(monitor, 1 * MONITOR_SCALE)); buildRunnerHelper.prepareStreams(epm, parsers, console, new SubProgressMonitor(monitor, TICKS_STREAM_PROGRESS_MONITOR));
buildRunnerHelper.removeOldMarkers(project, new SubProgressMonitor(monitor, 1 * MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK)); buildRunnerHelper.removeOldMarkers(project, new SubProgressMonitor(monitor, TICKS_DELETE_MARKERS, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));
buildRunnerHelper.greeting(kind, cfgName, toolchainName, isSupported); buildRunnerHelper.greeting(kind, cfgName, toolchainName, isSupported);
int state = buildRunnerHelper.build(new SubProgressMonitor(monitor, 1 * MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK)); int state = buildRunnerHelper.build(new SubProgressMonitor(monitor, TICKS_EXECUTE_COMMAND, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));
buildRunnerHelper.close(); buildRunnerHelper.close();
buildRunnerHelper.goodbye(); buildRunnerHelper.goodbye();
if (state != ICommandLauncher.ILLEGAL_COMMAND) { if (state != ICommandLauncher.ILLEGAL_COMMAND) {
buildRunnerHelper.refreshProject(new SubProgressMonitor(monitor, 1 * MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK)); buildRunnerHelper.refreshProject(new SubProgressMonitor(monitor, TICKS_REFRESH_PROJECT, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));
} }
} else { } else {
String msg = ManagedMakeMessages.getFormattedString("ManagedMakeBuilder.message.undefined.build.command", builder.getId()); //$NON-NLS-1$ String msg = ManagedMakeMessages.getFormattedString("ManagedMakeBuilder.message.undefined.build.command", builder.getId()); //$NON-NLS-1$

View file

@ -49,7 +49,11 @@ import org.eclipse.core.runtime.SubProgressMonitor;
* @since 8.0 * @since 8.0
*/ */
public class InternalBuildRunner extends AbstractBuildRunner { public class InternalBuildRunner extends AbstractBuildRunner {
private static final int MONITOR_SCALE = 100; private static final int PROGRESS_MONITOR_SCALE = 100;
private static final int TICKS_STREAM_PROGRESS_MONITOR = 1 * PROGRESS_MONITOR_SCALE;
private static final int TICKS_DELETE_MARKERS = 1 * PROGRESS_MONITOR_SCALE;
private static final int TICKS_EXECUTE_COMMAND = 1 * PROGRESS_MONITOR_SCALE;
private static final int TICKS_REFRESH_PROJECT = 1 * PROGRESS_MONITOR_SCALE;
@Override @Override
public boolean invokeBuild(int kind, IProject project, IConfiguration configuration, public boolean invokeBuild(int kind, IProject project, IConfiguration configuration,
@ -62,7 +66,7 @@ public class InternalBuildRunner extends AbstractBuildRunner {
if (monitor == null) { if (monitor == null) {
monitor = new NullProgressMonitor(); monitor = new NullProgressMonitor();
} }
monitor.beginTask("", 3 * MONITOR_SCALE); //$NON-NLS-1$ monitor.beginTask("", TICKS_STREAM_PROGRESS_MONITOR + TICKS_DELETE_MARKERS + TICKS_EXECUTE_COMMAND + TICKS_REFRESH_PROJECT); //$NON-NLS-1$
boolean isParallel = builder.getParallelizationNum() > 1; boolean isParallel = builder.getParallelizationNum() > 1;
boolean resumeOnErr = !builder.isStopOnError(); boolean resumeOnErr = !builder.isStopOnError();
@ -94,7 +98,7 @@ public class InternalBuildRunner extends AbstractBuildRunner {
List<IConsoleParser> parsers = new ArrayList<IConsoleParser>(); List<IConsoleParser> parsers = new ArrayList<IConsoleParser>();
ManagedBuildManager.collectLanguageSettingsConsoleParsers(cfgDescription, epm, parsers); ManagedBuildManager.collectLanguageSettingsConsoleParsers(cfgDescription, epm, parsers);
buildRunnerHelper.prepareStreams(epm, parsers, console, new SubProgressMonitor(monitor, 1 * MONITOR_SCALE)); buildRunnerHelper.prepareStreams(epm, parsers, console, new SubProgressMonitor(monitor, TICKS_STREAM_PROGRESS_MONITOR));
IBuildDescription des = BuildDescriptionManager.createBuildDescription(configuration, cBS, delta, flags); IBuildDescription des = BuildDescriptionManager.createBuildDescription(configuration, cBS, delta, flags);
DescriptionBuilder dBuilder = null; DescriptionBuilder dBuilder = null;
@ -106,7 +110,7 @@ public class InternalBuildRunner extends AbstractBuildRunner {
} }
} }
buildRunnerHelper.removeOldMarkers(project, new SubProgressMonitor(monitor, 1 * MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK)); buildRunnerHelper.removeOldMarkers(project, new SubProgressMonitor(monitor, TICKS_DELETE_MARKERS, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));
if (buildIncrementaly) { if (buildIncrementaly) {
buildRunnerHelper.greeting(IncrementalProjectBuilder.INCREMENTAL_BUILD, cfgName, toolchainName, isConfigurationSupported); buildRunnerHelper.greeting(IncrementalProjectBuilder.INCREMENTAL_BUILD, cfgName, toolchainName, isConfigurationSupported);
@ -120,9 +124,9 @@ public class InternalBuildRunner extends AbstractBuildRunner {
int status; int status;
if (dBuilder != null) { if (dBuilder != null) {
status = dBuilder.build(stdout, stderr, new SubProgressMonitor(monitor, 1 * MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK)); status = dBuilder.build(stdout, stderr, new SubProgressMonitor(monitor, TICKS_EXECUTE_COMMAND, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));
} else { } else {
status = ParallelBuilder.build(des, null, null, stdout, stderr, new SubProgressMonitor(monitor, 1 * MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK), resumeOnErr, buildIncrementaly); status = ParallelBuilder.build(des, null, null, stdout, stderr, new SubProgressMonitor(monitor, TICKS_EXECUTE_COMMAND, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK), resumeOnErr, buildIncrementaly);
buildRunnerHelper.printLine(ManagedMakeMessages.getFormattedString("CommonBuilder.7", Integer.toString(ParallelBuilder.lastThreadsUsed))); //$NON-NLS-1$ buildRunnerHelper.printLine(ManagedMakeMessages.getFormattedString("CommonBuilder.7", Integer.toString(ParallelBuilder.lastThreadsUsed))); //$NON-NLS-1$
} }
@ -132,7 +136,7 @@ public class InternalBuildRunner extends AbstractBuildRunner {
buildRunnerHelper.goodbye(); buildRunnerHelper.goodbye();
if (status != ICommandLauncher.ILLEGAL_COMMAND) { if (status != ICommandLauncher.ILLEGAL_COMMAND) {
buildRunnerHelper.refreshProject(monitor); buildRunnerHelper.refreshProject(new SubProgressMonitor(monitor, TICKS_REFRESH_PROJECT, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));
} }
} catch (Exception e) { } catch (Exception e) {

View file

@ -85,9 +85,14 @@ public class CommonBuilder extends ACBuilder {
private static final String NEWLINE = System.getProperty("line.separator"); //$NON-NLS-1$ private static final String NEWLINE = System.getProperty("line.separator"); //$NON-NLS-1$
private static final String TRACE_FOOTER = "]: "; //$NON-NLS-1$ private static final String TRACE_FOOTER = "]: "; //$NON-NLS-1$
private static final String TRACE_HEADER = "GeneratedmakefileBuilder trace ["; //$NON-NLS-1$ private static final String TRACE_HEADER = "GeneratedmakefileBuilder trace ["; //$NON-NLS-1$
private static final int MONITOR_SCALE = 100;
public static boolean VERBOSE = false; public static boolean VERBOSE = false;
private static final int PROGRESS_MONITOR_SCALE = 100;
private static final int TICKS_STREAM_PROGRESS_MONITOR = 1 * PROGRESS_MONITOR_SCALE;
private static final int TICKS_EXECUTE_COMMAND = 1 * PROGRESS_MONITOR_SCALE;
private static final int TICKS_REFRESH_PROJECT = 1 * PROGRESS_MONITOR_SCALE;
private static final int TICKS_DELETE_OUTPUTS = 1 * PROGRESS_MONITOR_SCALE;
private static CfgBuildSet fBuildSet = new CfgBuildSet(); private static CfgBuildSet fBuildSet = new CfgBuildSet();
private boolean fBuildErrOccured; private boolean fBuildErrOccured;
@ -1184,7 +1189,7 @@ public class CommonBuilder extends ACBuilder {
if (monitor == null) { if (monitor == null) {
monitor = new NullProgressMonitor(); monitor = new NullProgressMonitor();
} }
monitor.beginTask("", 2 * MONITOR_SCALE); //$NON-NLS-1$ monitor.beginTask("", TICKS_STREAM_PROGRESS_MONITOR + TICKS_EXECUTE_COMMAND + TICKS_REFRESH_PROJECT); //$NON-NLS-1$
IConsole console = bInfo.getConsole(); IConsole console = bInfo.getConsole();
@ -1193,7 +1198,7 @@ public class CommonBuilder extends ACBuilder {
URI workingDirectoryURI = ManagedBuildManager.getBuildLocationURI(configuration, builder); URI workingDirectoryURI = ManagedBuildManager.getBuildLocationURI(configuration, builder);
ErrorParserManager epm = new ErrorParserManager(project, workingDirectoryURI, this, errorParsers); ErrorParserManager epm = new ErrorParserManager(project, workingDirectoryURI, this, errorParsers);
buildRunnerHelper.prepareStreams(epm, null, console, new SubProgressMonitor(monitor, 1 * MONITOR_SCALE)); buildRunnerHelper.prepareStreams(epm, null, console, new SubProgressMonitor(monitor, TICKS_STREAM_PROGRESS_MONITOR));
OutputStream stdout = buildRunnerHelper.getOutputStream(); OutputStream stdout = buildRunnerHelper.getOutputStream();
OutputStream stderr = buildRunnerHelper.getErrorStream(); OutputStream stderr = buildRunnerHelper.getErrorStream();
@ -1202,12 +1207,12 @@ public class CommonBuilder extends ACBuilder {
boolean isConfigurationSupported = configuration.isSupported(); boolean isConfigurationSupported = configuration.isSupported();
buildRunnerHelper.greeting(CLEAN_BUILD, cfgName, toolchainName, isConfigurationSupported); buildRunnerHelper.greeting(CLEAN_BUILD, cfgName, toolchainName, isConfigurationSupported);
int status = sBuilder.build(stdout, stderr, new SubProgressMonitor(monitor, 1 * MONITOR_SCALE)); int status = sBuilder.build(stdout, stderr, new SubProgressMonitor(monitor, TICKS_EXECUTE_COMMAND));
buildRunnerHelper.close(); buildRunnerHelper.close();
buildRunnerHelper.goodbye(); buildRunnerHelper.goodbye();
if (status != ICommandLauncher.ILLEGAL_COMMAND) { if (status != ICommandLauncher.ILLEGAL_COMMAND) {
buildRunnerHelper.refreshProject(monitor); buildRunnerHelper.refreshProject(new SubProgressMonitor(monitor, TICKS_REFRESH_PROJECT));
} }
//Throw a core exception indicating that the clean command failed //Throw a core exception indicating that the clean command failed
@ -1273,7 +1278,7 @@ public class CommonBuilder extends ACBuilder {
if (monitor == null) { if (monitor == null) {
monitor = new NullProgressMonitor(); monitor = new NullProgressMonitor();
} }
monitor.beginTask("", 2 * MONITOR_SCALE); //$NON-NLS-1$ monitor.beginTask("", TICKS_STREAM_PROGRESS_MONITOR + TICKS_DELETE_OUTPUTS); //$NON-NLS-1$
// try the brute force approach first // try the brute force approach first
String status = ManagedMakeMessages.getFormattedString("ManagedMakeBuilder.message.clean.deleting.output", buildDir.getName()); //$NON-NLS-1$ String status = ManagedMakeMessages.getFormattedString("ManagedMakeBuilder.message.clean.deleting.output", buildDir.getName()); //$NON-NLS-1$
@ -1285,14 +1290,14 @@ public class CommonBuilder extends ACBuilder {
URI workingDirectoryURI = ManagedBuildManager.getBuildLocationURI(configuration, builder); URI workingDirectoryURI = ManagedBuildManager.getBuildLocationURI(configuration, builder);
ErrorParserManager epm = new ErrorParserManager(project, workingDirectoryURI, this, errorParsers); ErrorParserManager epm = new ErrorParserManager(project, workingDirectoryURI, this, errorParsers);
buildRunnerHelper.prepareStreams(epm, null, console, new SubProgressMonitor(monitor, 1 * MONITOR_SCALE)); buildRunnerHelper.prepareStreams(epm, null, console, new SubProgressMonitor(monitor, TICKS_STREAM_PROGRESS_MONITOR));
String cfgName = configuration.getName(); String cfgName = configuration.getName();
String toolchainName = configuration.getToolChain().getName(); String toolchainName = configuration.getToolChain().getName();
boolean isConfigurationSupported = configuration.isSupported(); boolean isConfigurationSupported = configuration.isSupported();
buildRunnerHelper.greeting(CLEAN_BUILD, cfgName, toolchainName, isConfigurationSupported); buildRunnerHelper.greeting(CLEAN_BUILD, cfgName, toolchainName, isConfigurationSupported);
workspace.delete(new IResource[]{buildDir}, true, new SubProgressMonitor(monitor, 1 * MONITOR_SCALE)); workspace.delete(new IResource[]{buildDir}, true, new SubProgressMonitor(monitor, TICKS_DELETE_OUTPUTS));
buildRunnerHelper.close(); buildRunnerHelper.close();
buildRunnerHelper.goodbye(); buildRunnerHelper.goodbye();

View file

@ -309,7 +309,11 @@ public class GeneratedMakefileBuilder extends ACBuilder {
private static final String INTERNAL_BUILDER_HEADER_NOTE = "ManagedMakeBuilder.message.internal.builder.header.note"; //$NON-NLS-1$ private static final String INTERNAL_BUILDER_HEADER_NOTE = "ManagedMakeBuilder.message.internal.builder.header.note"; //$NON-NLS-1$
private static final String TYPE_REBUILD = "ManagedMakeBuider.type.rebuild"; //$NON-NLS-1$ private static final String TYPE_REBUILD = "ManagedMakeBuider.type.rebuild"; //$NON-NLS-1$
private static final String INTERNAL_BUILDER = "ManagedMakeBuilder.message.internal.builder"; //$NON-NLS-1$ private static final String INTERNAL_BUILDER = "ManagedMakeBuilder.message.internal.builder"; //$NON-NLS-1$
private static final int MONITOR_SCALE = 100;
private static final int PROGRESS_MONITOR_SCALE = 100;
private static final int TICKS_STREAM_PROGRESS_MONITOR = 1 * PROGRESS_MONITOR_SCALE;
private static final int TICKS_DELETE_MARKERS = 1 * PROGRESS_MONITOR_SCALE;
public static boolean VERBOSE = false; public static boolean VERBOSE = false;
// Local variables // Local variables
@ -1399,12 +1403,12 @@ public class GeneratedMakefileBuilder extends ACBuilder {
try { try {
Map<IProject, List<IFile>> projectMap = arrangeFilesByProject(files); Map<IProject, List<IFile>> projectMap = arrangeFilesByProject(files);
monitor.beginTask("", projectMap.size() * MONITOR_SCALE); //$NON-NLS-1$ monitor.beginTask("", projectMap.size() * PROGRESS_MONITOR_SCALE); //$NON-NLS-1$
for (List<IFile> filesInProject : projectMap.values()) { for (List<IFile> filesInProject : projectMap.values()) {
IProject project = filesInProject.get(0).getProject(); IProject project = filesInProject.get(0).getProject();
monitor.subTask(ManagedMakeMessages.getFormattedString("GeneratedMakefileBuilder.buildingProject", project.getName())); //$NON-NLS-1$ monitor.subTask(ManagedMakeMessages.getFormattedString("GeneratedMakefileBuilder.buildingProject", project.getName())); //$NON-NLS-1$
invokeInternalBuilderForOneProject(filesInProject, new SubProgressMonitor(monitor, 1 * MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK)); invokeInternalBuilderForOneProject(filesInProject, new SubProgressMonitor(monitor, 1 * PROGRESS_MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));
} }
} finally { } finally {
if (monitor.isCanceled()) { if (monitor.isCanceled()) {
@ -1420,7 +1424,8 @@ public class GeneratedMakefileBuilder extends ACBuilder {
BuildRunnerHelper buildRunnerHelper = new BuildRunnerHelper(project); BuildRunnerHelper buildRunnerHelper = new BuildRunnerHelper(project);
try { try {
monitor.beginTask(ManagedMakeMessages.getFormattedString("GeneratedMakefileBuilder.buildingProject", project.getName()) + ':', files.size() * MONITOR_SCALE); //$NON-NLS-1$ monitor.beginTask(ManagedMakeMessages.getFormattedString("GeneratedMakefileBuilder.buildingProject", project.getName()) + ':', //$NON-NLS-1$
TICKS_STREAM_PROGRESS_MONITOR + files.size() * PROGRESS_MONITOR_SCALE);
// Get a build console for the project // Get a build console for the project
console = CCorePlugin.getDefault().getConsole(); console = CCorePlugin.getDefault().getConsole();
@ -1438,7 +1443,7 @@ public class GeneratedMakefileBuilder extends ACBuilder {
String[] errorParsers = configuration.getErrorParserList(); String[] errorParsers = configuration.getErrorParserList();
ErrorParserManager epm = new ErrorParserManager(project, des.getDefaultBuildDirLocationURI(), this, errorParsers); ErrorParserManager epm = new ErrorParserManager(project, des.getDefaultBuildDirLocationURI(), this, errorParsers);
buildRunnerHelper.prepareStreams(epm, null, console, new SubProgressMonitor(monitor, 1 * MONITOR_SCALE)); buildRunnerHelper.prepareStreams(epm, null, console, new SubProgressMonitor(monitor, TICKS_STREAM_PROGRESS_MONITOR));
OutputStream stdout = buildRunnerHelper.getOutputStream(); OutputStream stdout = buildRunnerHelper.getOutputStream();
OutputStream stderr = buildRunnerHelper.getErrorStream(); OutputStream stderr = buildRunnerHelper.getErrorStream();
@ -1462,13 +1467,13 @@ public class GeneratedMakefileBuilder extends ACBuilder {
dependentSteps.add(btype.getStep()); dependentSteps.add(btype.getStep());
} }
SubProgressMonitor monitor2 = new SubProgressMonitor(monitor, 1 * MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK); SubProgressMonitor monitor2 = new SubProgressMonitor(monitor, 1 * PROGRESS_MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK);
try { try {
monitor2.beginTask("", (1 + dependentSteps.size()) * MONITOR_SCALE); //$NON-NLS-1$ monitor2.beginTask("", TICKS_DELETE_MARKERS + dependentSteps.size()*PROGRESS_MONITOR_SCALE); //$NON-NLS-1$
// Remove problem markers for the file // Remove problem markers for the file
monitor2.subTask(ManagedMakeMessages.getFormattedString("GeneratedMakefileBuilder.removingResourceMarkers", filePath)); //$NON-NLS-1$ monitor2.subTask(ManagedMakeMessages.getFormattedString("GeneratedMakefileBuilder.removingResourceMarkers", filePath)); //$NON-NLS-1$
buildRunnerHelper.removeOldMarkers(file, new SubProgressMonitor(monitor2, 1 * MONITOR_SCALE, SubProgressMonitor.SUPPRESS_SUBTASK_LABEL)); buildRunnerHelper.removeOldMarkers(file, new SubProgressMonitor(monitor2, TICKS_DELETE_MARKERS, SubProgressMonitor.SUPPRESS_SUBTASK_LABEL));
// Build dependent steps // Build dependent steps
for (IBuildStep step : dependentSteps) { for (IBuildStep step : dependentSteps) {
@ -1478,7 +1483,7 @@ public class GeneratedMakefileBuilder extends ACBuilder {
monitor2.subTask(filePath); monitor2.subTask(filePath);
StepBuilder stepBuilder = new StepBuilder(step, null); StepBuilder stepBuilder = new StepBuilder(step, null);
stepBuilder.build(stdout, stderr, new SubProgressMonitor(monitor2, 1 * MONITOR_SCALE, SubProgressMonitor.SUPPRESS_SUBTASK_LABEL)); stepBuilder.build(stdout, stderr, new SubProgressMonitor(monitor2, 1 * PROGRESS_MONITOR_SCALE, SubProgressMonitor.SUPPRESS_SUBTASK_LABEL));
monitor2.subTask(ManagedMakeMessages.getFormattedString("GeneratedMakefileBuilder.refreshingArtifacts", filePath)); //$NON-NLS-1$ monitor2.subTask(ManagedMakeMessages.getFormattedString("GeneratedMakefileBuilder.refreshingArtifacts", filePath)); //$NON-NLS-1$
IBuildIOType[] outputIOTypes = step.getOutputIOTypes(); IBuildIOType[] outputIOTypes = step.getOutputIOTypes();
@ -1524,12 +1529,12 @@ public class GeneratedMakefileBuilder extends ACBuilder {
try { try {
Map<IProject, List<IFile>> projectMap = arrangeFilesByProject(files); Map<IProject, List<IFile>> projectMap = arrangeFilesByProject(files);
monitor.beginTask("", projectMap.size() * MONITOR_SCALE); //$NON-NLS-1$ monitor.beginTask("", projectMap.size() * PROGRESS_MONITOR_SCALE); //$NON-NLS-1$
for (List<IFile> filesInProject : projectMap.values()) { for (List<IFile> filesInProject : projectMap.values()) {
IProject project = filesInProject.get(0).getProject(); IProject project = filesInProject.get(0).getProject();
monitor.subTask(ManagedMakeMessages.getFormattedString("GeneratedMakefileBuilder.cleaningProject", project.getName())); //$NON-NLS-1$ monitor.subTask(ManagedMakeMessages.getFormattedString("GeneratedMakefileBuilder.cleaningProject", project.getName())); //$NON-NLS-1$
cleanFilesForOneProject(filesInProject, new SubProgressMonitor(monitor, 1 * MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK)); cleanFilesForOneProject(filesInProject, new SubProgressMonitor(monitor, 1 * PROGRESS_MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));
} }
} finally { } finally {
if (monitor.isCanceled()) { if (monitor.isCanceled()) {
@ -1546,7 +1551,8 @@ public class GeneratedMakefileBuilder extends ACBuilder {
int countDeleted = 0; int countDeleted = 0;
try { try {
monitor.beginTask(ManagedMakeMessages.getFormattedString("GeneratedMakefileBuilder.cleaningProject", project.getName()) + ':', files.size() * MONITOR_SCALE); //$NON-NLS-1$ monitor.beginTask(ManagedMakeMessages.getFormattedString("GeneratedMakefileBuilder.cleaningProject", project.getName()) + ':', //$NON-NLS-1$
TICKS_STREAM_PROGRESS_MONITOR + files.size() * PROGRESS_MONITOR_SCALE);
// Get a build console for the project // Get a build console for the project
console = CCorePlugin.getDefault().getConsole(); console = CCorePlugin.getDefault().getConsole();
@ -1566,7 +1572,7 @@ public class GeneratedMakefileBuilder extends ACBuilder {
String[] errorParsers = configuration.getErrorParserList(); String[] errorParsers = configuration.getErrorParserList();
ErrorParserManager epm = new ErrorParserManager(project, des.getDefaultBuildDirLocationURI(), this, errorParsers); ErrorParserManager epm = new ErrorParserManager(project, des.getDefaultBuildDirLocationURI(), this, errorParsers);
buildRunnerHelper.prepareStreams(epm, null , console, new SubProgressMonitor(monitor, 1 * MONITOR_SCALE)); buildRunnerHelper.prepareStreams(epm, null , console, new SubProgressMonitor(monitor, TICKS_STREAM_PROGRESS_MONITOR));
buildRunnerHelper.greeting(ManagedMakeMessages.getResourceString("CleanFilesAction.cleanSelectedFiles"), cfgName, toolchainName, isSupported); //$NON-NLS-1$ buildRunnerHelper.greeting(ManagedMakeMessages.getResourceString("CleanFilesAction.cleanSelectedFiles"), cfgName, toolchainName, isSupported); //$NON-NLS-1$
buildRunnerHelper.printLine(ManagedMakeMessages.getResourceString("ManagedMakeBuilder.message.internal.builder.header.note")); //$NON-NLS-1$ buildRunnerHelper.printLine(ManagedMakeMessages.getResourceString("ManagedMakeBuilder.message.internal.builder.header.note")); //$NON-NLS-1$
@ -1587,13 +1593,13 @@ public class GeneratedMakefileBuilder extends ACBuilder {
dependentSteps.add(btype.getStep()); dependentSteps.add(btype.getStep());
} }
SubProgressMonitor monitor2 = new SubProgressMonitor(monitor, 1 * MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK); SubProgressMonitor monitor2 = new SubProgressMonitor(monitor, 1 * PROGRESS_MONITOR_SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK);
try { try {
monitor2.beginTask("", (1 + dependentSteps.size()) * MONITOR_SCALE); //$NON-NLS-1$ monitor2.beginTask("", TICKS_DELETE_MARKERS + dependentSteps.size()*PROGRESS_MONITOR_SCALE); //$NON-NLS-1$
// Remove problem markers for the file // Remove problem markers for the file
monitor2.subTask(ManagedMakeMessages.getFormattedString("GeneratedMakefileBuilder.removingResourceMarkers", filePath)); //$NON-NLS-1$ monitor2.subTask(ManagedMakeMessages.getFormattedString("GeneratedMakefileBuilder.removingResourceMarkers", filePath)); //$NON-NLS-1$
buildRunnerHelper.removeOldMarkers(file, new SubProgressMonitor(monitor2, 1 * MONITOR_SCALE, SubProgressMonitor.SUPPRESS_SUBTASK_LABEL)); buildRunnerHelper.removeOldMarkers(file, new SubProgressMonitor(monitor2, TICKS_DELETE_MARKERS, SubProgressMonitor.SUPPRESS_SUBTASK_LABEL));
// iterate through all build steps // iterate through all build steps
for (IBuildStep step : dependentSteps) { for (IBuildStep step : dependentSteps) {
@ -1617,7 +1623,7 @@ public class GeneratedMakefileBuilder extends ACBuilder {
} }
} }
monitor2.worked(1 * MONITOR_SCALE); monitor2.worked(1 * PROGRESS_MONITOR_SCALE);
} }
} finally { } finally {
monitor2.done(); monitor2.done();

View file

@ -47,7 +47,6 @@ import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.QualifiedName; import org.eclipse.core.runtime.QualifiedName;
import org.eclipse.core.runtime.SubProgressMonitor;
/** /**
* Helper class attempting to unify interactions with build console, * Helper class attempting to unify interactions with build console,
@ -58,7 +57,10 @@ import org.eclipse.core.runtime.SubProgressMonitor;
*/ */
public class BuildRunnerHelper implements Closeable { public class BuildRunnerHelper implements Closeable {
private static final String PROGRESS_MONITOR_QUALIFIER = CCorePlugin.PLUGIN_ID + ".progressMonitor"; //$NON-NLS-1$ private static final String PROGRESS_MONITOR_QUALIFIER = CCorePlugin.PLUGIN_ID + ".progressMonitor"; //$NON-NLS-1$
private static final int MONITOR_SCALE = 100; private static final int PROGRESS_MONITOR_SCALE = 100;
private static final int TICKS_STREAM_PROGRESS_MONITOR = 1 * PROGRESS_MONITOR_SCALE;
private static final int TICKS_EXECUTE_PROGRAM = 1 * PROGRESS_MONITOR_SCALE;
private static final int TICKS_PARSE_OUTPUT = 1 * PROGRESS_MONITOR_SCALE;
private IProject project; private IProject project;
@ -153,7 +155,7 @@ public class BuildRunnerHelper implements Closeable {
lastWork = (Integer)project.getSessionProperty(progressPropertyName); lastWork = (Integer)project.getSessionProperty(progressPropertyName);
} }
if (lastWork == null) { if (lastWork == null) {
lastWork = MONITOR_SCALE; lastWork = TICKS_STREAM_PROGRESS_MONITOR;
} }
streamProgressMonitor = new StreamProgressMonitor(monitor, null, lastWork.intValue()); streamProgressMonitor = new StreamProgressMonitor(monitor, null, lastWork.intValue());
@ -217,7 +219,7 @@ public class BuildRunnerHelper implements Closeable {
monitor = new NullProgressMonitor(); monitor = new NullProgressMonitor();
} }
try { try {
monitor.beginTask("", 1 * MONITOR_SCALE); //$NON-NLS-1$ monitor.beginTask("", TICKS_EXECUTE_PROGRAM + TICKS_PARSE_OUTPUT); //$NON-NLS-1$
isCancelled = false; isCancelled = false;
String pathFromURI = null; String pathFromURI = null;
@ -231,7 +233,9 @@ public class BuildRunnerHelper implements Closeable {
IPath workingDirectory = new Path(pathFromURI); IPath workingDirectory = new Path(pathFromURI);
String errMsg = null; String errMsg = null;
monitor.subTask(CCorePlugin.getFormattedString("BuildRunnerHelper.invokingCommand", launcher.getCommandLine())); //$NON-NLS-1$
Process p = launcher.execute(buildCommand, args, envp, workingDirectory, monitor); Process p = launcher.execute(buildCommand, args, envp, workingDirectory, monitor);
monitor.worked(TICKS_EXECUTE_PROGRAM);
if (p != null) { if (p != null) {
try { try {
// Close the input of the Process explicitly. // Close the input of the Process explicitly.
@ -239,10 +243,9 @@ public class BuildRunnerHelper implements Closeable {
p.getOutputStream().close(); p.getOutputStream().close();
} catch (IOException e) { } catch (IOException e) {
} }
// Before launching give visual cues via the monitor
monitor.subTask(CCorePlugin.getFormattedString("BuildRunnerHelper.invokingCommand", launcher.getCommandLine())); //$NON-NLS-1$
status = launcher.waitAndRead(stdout, stderr, new SubProgressMonitor(monitor, 1 * MONITOR_SCALE)); status = launcher.waitAndRead(stdout, stderr, monitor);
monitor.worked(TICKS_PARSE_OUTPUT);
if (status != ICommandLauncher.OK) { if (status != ICommandLauncher.OK) {
errMsg = launcher.getErrorMessage(); errMsg = launcher.getErrorMessage();
} }
@ -464,7 +467,7 @@ public class BuildRunnerHelper implements Closeable {
* Qualified name to keep previous value of build duration in project session properties. * Qualified name to keep previous value of build duration in project session properties.
*/ */
private static QualifiedName getProgressPropertyName(IPath buildCommand, String[] args) { private static QualifiedName getProgressPropertyName(IPath buildCommand, String[] args) {
String name = "buildCommand." + buildCommand.toString(); String name = "buildCommand." + buildCommand.toString(); //$NON-NLS-1$
if (args != null) { if (args != null) {
for (String arg : args) { for (String arg : args) {
name = name + ' ' + arg; name = name + ' ' + arg;