[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [cdt-dev] Wait for build to complete and check if errors
|
You can use something like that:
public static boolean buildAndWaitForEnd() {
IProgressService progressService = workbench.getProgressService();
final IRunnableWithProgress runnable = new
IRunnableWithProgress() {
public void run(IProgressMonitor monitor) throws
InvocationTargetException {
IJobManager jobManager = Job.getJobManager();
IWorkbench workbench = PlatformUI.getWorkbench();
try {
ResourcesPlugin.getWorkSpace().build(IncrementalProjectBuilder.FULL_BUILD,
monitor);
} catch (CoreException e) {
throw new InvocationTargetException(e);
}
if (!monitor.isCanceled()) {
try {
jobManager.join(ResourcesPlugin.FAMILY_MANUAL_BUILD, monitor);
jobManager.join(ResourcesPlugin.FAMILY_AUTO_BUILD, monitor);
} catch (InterruptedException e) {
// continue
}
}
}
};
try {
progressService.busyCursorWhile(runnable);
return true;
}
.....
return false;
}
If you initiated your build indirectly (as an AUTO_BUILD, you have to
correct a bit this code.
Subs wrote:
Hi,
In my plugin, I have created some C/C++ projects (essentially, an
Import) and then build the workspace using:
workspace.build(IncrementalProjectBuilder.CLEAN_BUILD, monitor).
I want to wait for the build to complete and then check to see if
there were any build errors. How can I detect when the build has
completed? The call above starts a build asynchronously.
To check for errors, I am iterating through each project in the
workspace and calling:
project.findMaxProblemSeverity();
Is this the 'right' way to check for build errors? Is there a better way?
Thanks,