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

Fix problem with building when a referenced project has changed.

This commit is contained in:
Leo Treggiari 2005-07-06 14:57:21 +00:00
parent 61aa8cb62c
commit b6b99ac40a

View file

@ -154,9 +154,7 @@ public class GeneratedMakefileBuilder extends ACBuilder {
if (changedResource instanceof IFolder) {
return true;
} else {
String name = changedResource.getName();
String ext = changedResource.getFileExtension();
String name = changedResource.getName();
if ((!name.equals(buildGoalName) &&
// TODO: Also need to check for secondary outputs
(changedResource.isDerived() ||
@ -358,11 +356,32 @@ public class GeneratedMakefileBuilder extends ACBuilder {
delta.accept(visitor);
if (visitor.shouldBuildFull()) {
outputTrace(getProject().getName(), "Incremental build requested, full build needed"); //$NON-NLS-1$
fullBuild(info, generator, monitor);
fullBuild(info, generator, monitor);
} else if (visitor.shouldBuildIncr()) {
outputTrace(getProject().getName(), "Incremental build requested"); //$NON-NLS-1$
incrementalBuild(delta, info, generator, monitor);
}
else if (referencedProjects != null) {
// Also check to see is any of the dependent projects changed
for (int i=0; i<referencedProjects.length; i++) {
IProject ref = referencedProjects[i];
IResourceDelta refDelta = getDelta(ref);
if (refDelta == null) {
outputTrace(getProject().getName(), "Incremental build because of changed referenced project"); //$NON-NLS-1$
incrementalBuild(delta, info, generator, monitor);
} else {
int refKind = refDelta.getKind();
if (refKind != IResourceDelta.NO_CHANGE) {
int refFlags = refDelta.getFlags();
if (!(refKind == IResourceDelta.CHANGED &&
refFlags == IResourceDelta.OPEN)) {
outputTrace(getProject().getName(), "Incremental build because of changed referenced project"); //$NON-NLS-1$
incrementalBuild(delta, info, generator, monitor);
}
}
}
}
}
}
}
// Scrub the build info the project
@ -815,7 +834,6 @@ public class GeneratedMakefileBuilder extends ACBuilder {
// then: don't invoke the prebuild step, which should be run only if
// something needs to be built in the main build
// else: invoke the prebuild step and the main build step
boolean quit = false;
premakeArgs.add("-q"); //$NON-NLS-1$
premakeArgs.add("main-build"); //$NON-NLS-1$
premakeTargets = (String[]) premakeArgs.toArray(new String[premakeArgs.size()]);