From 4c4442c39acdf1e1fedf6ac2aa89535b654354eb Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 3 Dec 2008 10:08:58 +0000 Subject: Delete discovered paths after an update of the tools. --- .../org/rtems/cdt/Storage.java | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/Storage.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/Storage.java index 3cd0c0e..230bd11 100644 --- a/org.rtems.cdt.toolchain2/org/rtems/cdt/Storage.java +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/Storage.java @@ -19,6 +19,13 @@ import java.io.InputStreamReader; import java.util.LinkedList; import java.util.List; +import org.eclipse.cdt.build.core.scannerconfig.CfgInfoContext; +import org.eclipse.cdt.build.internal.core.scannerconfig.CfgDiscoveredPathManager; +import org.eclipse.cdt.core.model.CoreModel; +import org.eclipse.cdt.core.settings.model.ICConfigurationDescription; +import org.eclipse.cdt.core.settings.model.ICProjectDescription; +import org.eclipse.cdt.managedbuilder.core.IConfiguration; +import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.QualifiedName; @@ -75,6 +82,27 @@ public class Storage { } } + public static IConfiguration [] getConfigurations( IProject project) { + ICProjectDescription pd = CoreModel.getDefault().getProjectDescription( project); + + ICConfigurationDescription cds [] = pd.getConfigurations(); + IConfiguration cfgs [] = new IConfiguration [cds.length]; + for (int i = 0; i < cds.length; ++i) { + cfgs [i] = ManagedBuildManager.getConfigurationForDescription( cds [i]); + } + + return cfgs; + } + + public static IConfiguration getActiveConfiguration( IProject project) { + ICProjectDescription pd = CoreModel.getDefault().getProjectDescription( project); + + ICConfigurationDescription cd = pd.getActiveConfiguration(); + IConfiguration cfg = ManagedBuildManager.getConfigurationForDescription( cd); + + return cfg; + } + public static void updateTools( IProject project) { // Create make process builder ProcessBuilder pb = new ProcessBuilder( @@ -147,6 +175,14 @@ public class Storage { } } } + + // Delete discovered paths for all configurations of the project + for (IConfiguration cfg : getConfigurations( project)) { + CfgDiscoveredPathManager.getInstance().removeDiscoveredInfo( + project, + new CfgInfoContext( cfg) + ); + } } private static void updateTool( IProject project, String toolKey, String command, List options) { -- cgit v1.2.3