mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-08 18:26:01 +02:00
Fix problem with building when a referenced project has changed.
This commit is contained in:
parent
61aa8cb62c
commit
b6b99ac40a
1 changed files with 23 additions and 5 deletions
|
@ -155,8 +155,6 @@ public class GeneratedMakefileBuilder extends ACBuilder {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
String name = changedResource.getName();
|
String name = changedResource.getName();
|
||||||
String ext = changedResource.getFileExtension();
|
|
||||||
|
|
||||||
if ((!name.equals(buildGoalName) &&
|
if ((!name.equals(buildGoalName) &&
|
||||||
// TODO: Also need to check for secondary outputs
|
// TODO: Also need to check for secondary outputs
|
||||||
(changedResource.isDerived() ||
|
(changedResource.isDerived() ||
|
||||||
|
@ -363,6 +361,27 @@ public class GeneratedMakefileBuilder extends ACBuilder {
|
||||||
outputTrace(getProject().getName(), "Incremental build requested"); //$NON-NLS-1$
|
outputTrace(getProject().getName(), "Incremental build requested"); //$NON-NLS-1$
|
||||||
incrementalBuild(delta, info, generator, monitor);
|
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
|
// 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
|
// then: don't invoke the prebuild step, which should be run only if
|
||||||
// something needs to be built in the main build
|
// something needs to be built in the main build
|
||||||
// else: invoke the prebuild step and the main build step
|
// else: invoke the prebuild step and the main build step
|
||||||
boolean quit = false;
|
|
||||||
premakeArgs.add("-q"); //$NON-NLS-1$
|
premakeArgs.add("-q"); //$NON-NLS-1$
|
||||||
premakeArgs.add("main-build"); //$NON-NLS-1$
|
premakeArgs.add("main-build"); //$NON-NLS-1$
|
||||||
premakeTargets = (String[]) premakeArgs.toArray(new String[premakeArgs.size()]);
|
premakeTargets = (String[]) premakeArgs.toArray(new String[premakeArgs.size()]);
|
||||||
|
|
Loading…
Add table
Reference in a new issue