From e6deaf82037082a5b37848b28f30bff4df4c2d06 Mon Sep 17 00:00:00 2001 From: James Blackburn Date: Fri, 21 Jan 2011 13:40:53 +0000 Subject: [PATCH] Bug 335001 - Copying a configuration persists previous exported library path, patch 1 --- .../managedbuilder/internal/core/Configuration.java | 2 +- .../dataprovider/ConfigurationDataProvider.java | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java index 17b1ca85903..d4535b34a40 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java @@ -2673,7 +2673,7 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild /** * @return whether this Configuration exports settings to other referenced configurations */ - private boolean canExportedArtifactInfo() { + public boolean canExportedArtifactInfo() { if (isExtensionConfig) return false; diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/ConfigurationDataProvider.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/ConfigurationDataProvider.java index 88ee170c5af..e30166f85d5 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/ConfigurationDataProvider.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/ConfigurationDataProvider.java @@ -22,6 +22,7 @@ import org.eclipse.cdt.build.internal.core.scannerconfig2.CfgScannerConfigInfoFa import org.eclipse.cdt.core.model.ILanguageDescriptor; import org.eclipse.cdt.core.model.LanguageManager; import org.eclipse.cdt.core.settings.model.ICConfigurationDescription; +import org.eclipse.cdt.core.settings.model.ICExternalSetting; import org.eclipse.cdt.core.settings.model.ICProjectDescription; import org.eclipse.cdt.core.settings.model.ICStorageElement; import org.eclipse.cdt.core.settings.model.IModificationContext; @@ -238,13 +239,11 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem Configuration cfg = (Configuration)((BuildConfigurationData)base).getConfiguration(); Configuration newCfg = copyCfg(cfg, des); -// IManagedBuildInfo info = getBuildInfo(des); -// ManagedProject mProj = (ManagedProject)info.getManagedProject(); -// -// Configuration newCfg = new Configuration(mProj, cfg, des.getId(), true, true, false); -// newCfg.setConfigurationDescription(des); -// newCfg.setName(des.getName()); - if(!newCfg.getId().equals(cfg.getId())){ + if(!newCfg.getId().equals(cfg.getId()) && newCfg.canExportedArtifactInfo()){ + // Bug 335001: Remove existing exported settings as they point at this configuration + for (ICExternalSetting extSetting : newCfg.getConfigurationDescription().getExternalSettings()) + newCfg.getConfigurationDescription().removeExternalSetting(extSetting); + // Now export the new settings newCfg.exportArtifactInfo(); }