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:
parent
f352888033
commit
74cf488602
1 changed files with 10 additions and 23 deletions
|
@ -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();
|
||||||
|
|
Loading…
Add table
Reference in a new issue