1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 22:52:11 +02:00

Fix for the 125571: wiredness in delta handling in GeneratedMakefileBuilder

This commit is contained in:
Mikhail Sennikovsky 2006-08-28 15:08:15 +00:00
parent a6a899abc5
commit a7e7af7c47

View file

@ -30,7 +30,6 @@ import org.eclipse.cdt.core.model.ICModelMarker;
import org.eclipse.cdt.core.resources.ACBuilder;
import org.eclipse.cdt.core.resources.IConsole;
import org.eclipse.cdt.managedbuilder.buildmodel.BuildDescriptionManager;
import org.eclipse.cdt.managedbuilder.buildmodel.IBuildCommand;
import org.eclipse.cdt.managedbuilder.buildmodel.IBuildDescription;
import org.eclipse.cdt.managedbuilder.buildmodel.IBuildIOType;
import org.eclipse.cdt.managedbuilder.buildmodel.IBuildResource;
@ -47,7 +46,6 @@ import org.eclipse.cdt.managedbuilder.macros.IBuildMacroProvider;
import org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
@ -158,18 +156,14 @@ public class GeneratedMakefileBuilder extends ACBuilder {
IResource resource = delta.getResource();
// If the project has changed, then a build is needed and we can stop
if (resource != null && resource.getProject() == getProject()) {
IResourceDelta[] kids = delta.getAffectedChildren();
for (int index = kids.length - 1; index >= 0; --index) {
IResource changedResource = kids[index].getResource();
if (changedResource instanceof IFolder) {
return true;
} else {
String name = changedResource.getName();
switch(resource.getType()){
case IResource.FILE:
String name = resource.getName();
if ((!name.equals(buildGoalName) &&
// TODO: Also need to check for secondary outputs
(changedResource.isDerived() ||
(isProjectFile(changedResource)) ||
(isGeneratedResource(changedResource))))) {
(resource.isDerived() ||
(isProjectFile(resource)) ||
(isGeneratedResource(resource))))) {
// The resource that changed has attributes which make it uninteresting,
// so don't do anything
;
@ -192,7 +186,7 @@ public class GeneratedMakefileBuilder extends ACBuilder {
// We need to do an incremental build, at least
incrBuildNeeded = true;
if (kids[index].getKind() == IResourceDelta.REMOVED) {
if (delta.getKind() == IResourceDelta.REMOVED) {
// If a meaningful resource was removed, then force a full build
// This is required because an incremental build will trigger make to
// do nothing for a missing source, since the state after the file
@ -207,10 +201,10 @@ public class GeneratedMakefileBuilder extends ACBuilder {
//}
}
}
}
return false;
}
}
return true;
}
}