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

fix pr 57823

This commit is contained in:
Alain Magloire 2004-04-14 19:35:12 +00:00
parent f352888033
commit 74cf488602

View file

@ -30,7 +30,6 @@ import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceDelta; import org.eclipse.core.resources.IResourceDelta;
import org.eclipse.core.resources.IResourceDeltaVisitor;
import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.IncrementalProjectBuilder; import org.eclipse.core.resources.IncrementalProjectBuilder;
import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.CoreException;
@ -53,21 +52,6 @@ public class MakeBuilder extends ACBuilder {
public MakeBuilder() { public MakeBuilder() {
} }
public class MyResourceDeltaVisitor implements IResourceDeltaVisitor {
boolean bContinue;
public boolean visit(IResourceDelta delta) {
IResource resource = delta.getResource();
if (resource != null && resource.getProject() == getProject()) {
bContinue = true;
return false;
}
return true;
}
public boolean shouldBuild() {
return bContinue;
}
}
/** /**
* @see IncrementalProjectBuilder#build * @see IncrementalProjectBuilder#build
*/ */
@ -79,22 +63,25 @@ public class MakeBuilder extends ACBuilder {
return new IProject[0]; return new IProject[0];
} }
if (kind == IncrementalProjectBuilder.AUTO_BUILD) { if (kind == IncrementalProjectBuilder.AUTO_BUILD) {
MyResourceDeltaVisitor vis = new MyResourceDeltaVisitor();
IResourceDelta delta = getDelta(getProject()); IResourceDelta delta = getDelta(getProject());
if (delta != null) { if (delta != null) {
delta.accept(vis); IResource res = delta.getResource();
bPerformBuild = vis.shouldBuild(); if (res != null) {
} else bPerformBuild = res.getProject().equals(getProject());
}
} else {
bPerformBuild = false; bPerformBuild = false;
}
} }
if (bPerformBuild) { if (bPerformBuild) {
boolean isClean = invokeMake(kind, info, monitor); boolean isClean = invokeMake(kind, info, monitor);
if (isClean) { if (isClean) {
forgetLastBuiltState(); forgetLastBuiltState();
} }
} else { // This should really be based of last build state, for now its safer to just } else {
// forget last, until we get some kind of build state manager in the CDT Core. // This should really be based of last build state, for now its safer to just
forgetLastBuiltState(); // forget last, until we get some kind of build state manager in the CDT Core.
//forgetLastBuiltState();
} }
checkCancel(monitor); checkCancel(monitor);
return getProject().getReferencedProjects(); return getProject().getReferencedProjects();