1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-07 09:46:02 +02:00

Re-read the makefile targets when a project becomes eligible

Without this change when the project is not a "hasTargetBuilder" then
the projectMap will contain an entry mapping the project to
an empty set of makefile targets. So when we get a project added,
make sure to re-read the target settings by clearing the cached
versions.

Fixes #244
This commit is contained in:
Jonah Graham 2023-01-16 17:03:44 -05:00
parent fe7a9d7856
commit 34f1736317
2 changed files with 7 additions and 1 deletions

View file

@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2 Bundle-ManifestVersion: 2
Bundle-Name: %pluginName Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.cdt.make.core; singleton:=true Bundle-SymbolicName: org.eclipse.cdt.make.core; singleton:=true
Bundle-Version: 7.6.0.qualifier Bundle-Version: 7.6.100.qualifier
Bundle-Activator: org.eclipse.cdt.make.core.MakeCorePlugin Bundle-Activator: org.eclipse.cdt.make.core.MakeCorePlugin
Bundle-Vendor: %providerName Bundle-Vendor: %providerName
Bundle-Localization: plugin Bundle-Localization: plugin

View file

@ -259,6 +259,8 @@ public class MakeTargetManager implements IMakeTargetManager, IResourceChangeLis
if (deltaKind == IResourceDelta.ADDED) { if (deltaKind == IResourceDelta.ADDED) {
if (hasTargetBuilder(project) && !fProjects.contains(project)) { if (hasTargetBuilder(project) && !fProjects.contains(project)) {
fProjects.add(project); fProjects.add(project);
// Need to re-read the target settings, clear the cached version
projectMap.remove(project);
notifyListeners( notifyListeners(
new MakeTargetEvent(MakeTargetManager.this, MakeTargetEvent.PROJECT_ADDED, project)); new MakeTargetEvent(MakeTargetManager.this, MakeTargetEvent.PROJECT_ADDED, project));
} }
@ -278,6 +280,8 @@ public class MakeTargetManager implements IMakeTargetManager, IResourceChangeLis
project)); project));
} else if (!fProjects.contains(project) && hasTargetBuilder(project)) { } else if (!fProjects.contains(project) && hasTargetBuilder(project)) {
fProjects.add(project); fProjects.add(project);
// Need to re-read the target settings, clear the cached version
projectMap.remove(project);
notifyListeners(new MakeTargetEvent(MakeTargetManager.this, MakeTargetEvent.PROJECT_ADDED, notifyListeners(new MakeTargetEvent(MakeTargetManager.this, MakeTargetEvent.PROJECT_ADDED,
project)); project));
} }
@ -290,6 +294,8 @@ public class MakeTargetManager implements IMakeTargetManager, IResourceChangeLis
project)); project));
} else if (project.isOpen() && hasTargetBuilder(project) && !fProjects.contains(project)) { } else if (project.isOpen() && hasTargetBuilder(project) && !fProjects.contains(project)) {
fProjects.add(project); fProjects.add(project);
// Need to re-read the target settings, clear the cached version
projectMap.remove(project);
notifyListeners(new MakeTargetEvent(MakeTargetManager.this, MakeTargetEvent.PROJECT_ADDED, notifyListeners(new MakeTargetEvent(MakeTargetManager.this, MakeTargetEvent.PROJECT_ADDED,
project)); project));
} }