diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java index 63953098db2..8de96d8bffc 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java @@ -1842,25 +1842,25 @@ public class InputType extends BuildObject implements IInputType { } /** - * Check if legacy scanner discovery method should be used. + * Check if legacy scanner discovery profiles should be used. */ - private boolean isLegacyScannerDiscovery() { - boolean isLanguageSettingsProvidersEnabled = false; + private boolean useLegacyScannerDiscoveryProfiles() { + boolean useLegacy = true; ITool tool = getParent(); - if (tool!=null) { - IBuildObject bo = tool.getParent(); - if (bo instanceof IToolChain) { - IConfiguration cfg = ((IToolChain) bo).getParent(); - if (cfg!=null) { + if (tool != null) { + IBuildObject toolchain = tool.getParent(); + if (toolchain instanceof IToolChain && ((IToolChain) toolchain).getDefaultLanguageSettingsProviderIds() != null) { + IConfiguration cfg = ((IToolChain) toolchain).getParent(); + if (cfg != null && cfg.getDefaultLanguageSettingsProviderIds() != null) { IResource rc = cfg.getOwner(); - if (rc!=null) { + if (rc != null) { IProject project = rc.getProject(); - isLanguageSettingsProvidersEnabled = ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(project); + useLegacy = !ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(project); } } } } - return !isLanguageSettingsProvidersEnabled; + return useLegacy; } /** @@ -1879,11 +1879,12 @@ public class InputType extends BuildObject implements IInputType { } public String getDiscoveryProfileIdAttribute() { - if (isLegacyScannerDiscovery()) { - return getLegacyDiscoveryProfileIdAttribute(); + String discoveryProfileAttribute = getDiscoveryProfileIdAttributeInternal(); + if (discoveryProfileAttribute == null && useLegacyScannerDiscoveryProfiles()) { + discoveryProfileAttribute = getLegacyDiscoveryProfileIdAttribute(); } - return getDiscoveryProfileIdAttributeInternal(); + return discoveryProfileAttribute; } /** diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java index 30f027a94c5..f19fed3634b 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java @@ -89,7 +89,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IMatchKeyProv private String secondaryOutputIds; private Boolean isAbstract; private String defaultLanguageSettingsProviderIds; - private String scannerConfigDiscoveryProfileId; + private String scannerConfigDiscoveryProfileId; private String versionsSupported; private String convertToId; private IConfigurationElement managedIsToolChainSupportedElement = null; @@ -1545,19 +1545,21 @@ public class ToolChain extends HoldsOptions implements IToolChain, IMatchKeyProv } /** - * Check if legacy scanner discovery method should be used. + * Check if legacy scanner discovery profiles should be used. */ - private boolean isLegacyScannerDiscovery() { - boolean isLanguageSettingsProvidersEnabled = false; - IConfiguration cfg = getParent(); - if (cfg != null) { - IResource rc = cfg.getOwner(); - if (rc != null) { - IProject project = rc.getProject(); - isLanguageSettingsProvidersEnabled = ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(project); + private boolean useLegacyScannerDiscoveryProfiles() { + boolean useLegacy = true; + if (getDefaultLanguageSettingsProviderIds() != null) { + IConfiguration cfg = getParent(); + if (cfg != null && cfg.getDefaultLanguageSettingsProviderIds() != null) { + IResource rc = cfg.getOwner(); + if (rc != null) { + IProject project = rc.getProject(); + useLegacy = !ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(project); + } } } - return !isLanguageSettingsProvidersEnabled; + return useLegacy; } /** @@ -1582,11 +1584,12 @@ public class ToolChain extends HoldsOptions implements IToolChain, IMatchKeyProv @Override public String getScannerConfigDiscoveryProfileId() { - if (isLegacyScannerDiscovery()) { - return getLegacyScannerConfigDiscoveryProfileId(); + String discoveryProfileId = getScannerConfigDiscoveryProfileIdInternal(); + if (discoveryProfileId == null && useLegacyScannerDiscoveryProfiles()) { + discoveryProfileId = getLegacyScannerConfigDiscoveryProfileId(); } - return getScannerConfigDiscoveryProfileIdInternal(); + return discoveryProfileId; } /** 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 5c29520d0b7..eae4fbff647 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 @@ -533,9 +533,7 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem } providers.add(provider); } - } - - if (providers.isEmpty()) { + } else { providers = ScannerDiscoveryLegacySupport.getDefaultProvidersLegacy(); } diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml b/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml index db5faa8aa54..34cbe8478f3 100644 --- a/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml +++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml @@ -1923,10 +1923,11 @@ + osList="macosx" + targetTool="cdt.managedbuild.tool.macosx.c.linker.macosx.base;cdt.managedbuild.tool.macosx.cpp.linker.macosx.base;cdt.managedbuild.tool.gnu.archiver"> + cleanCommand="rm -rf" + id="cdt.managedbuild.config.gnu.macosx.base" + languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"> + cleanCommand="rm -rf" + id="cdt.managedbuild.config.gnu.solaris.base" + languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">