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:
parent
a6a899abc5
commit
a7e7af7c47
1 changed files with 46 additions and 52 deletions
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue