mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
bug 378589: [sd90] Scanner Discovery doesn't run on certain toolchains
This commit is contained in:
parent
fac58cefa1
commit
77442617cc
4 changed files with 45 additions and 40 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -533,9 +533,7 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
|||
}
|
||||
providers.add(provider);
|
||||
}
|
||||
}
|
||||
|
||||
if (providers.isEmpty()) {
|
||||
} else {
|
||||
providers = ScannerDiscoveryLegacySupport.getDefaultProvidersLegacy();
|
||||
}
|
||||
|
||||
|
|
|
@ -1923,10 +1923,11 @@
|
|||
|
||||
<toolChain
|
||||
archList="all"
|
||||
osList="macosx"
|
||||
id="cdt.managedbuild.toolchain.gnu.macosx.base"
|
||||
languageSettingsProviders="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser;org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetector"
|
||||
name="%ToolChainName.Macosx"
|
||||
targetTool="cdt.managedbuild.tool.macosx.c.linker.macosx.base;cdt.managedbuild.tool.macosx.cpp.linker.macosx.base;cdt.managedbuild.tool.gnu.archiver"
|
||||
id="cdt.managedbuild.toolchain.gnu.macosx.base">
|
||||
osList="macosx"
|
||||
targetTool="cdt.managedbuild.tool.macosx.c.linker.macosx.base;cdt.managedbuild.tool.macosx.cpp.linker.macosx.base;cdt.managedbuild.tool.gnu.archiver">
|
||||
<targetPlatform
|
||||
id="cdt.managedbuild.target.gnu.platform.macosx.base"
|
||||
name="%PlatformName.Dbg"
|
||||
|
@ -2053,9 +2054,10 @@
|
|||
|
||||
<toolChain
|
||||
archList="all"
|
||||
osList="solaris"
|
||||
id="cdt.managedbuild.toolchain.gnu.solaris.base"
|
||||
languageSettingsProviders="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser;org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetector"
|
||||
name="%ToolChainName.Solaris"
|
||||
osList="solaris"
|
||||
superClass="cdt.managedbuild.toolchain.gnu.base">
|
||||
<targetPlatform
|
||||
id="cdt.managedbuild.target.gnu.solaris.base"
|
||||
|
@ -3256,9 +3258,9 @@
|
|||
</projectType>
|
||||
|
||||
<configuration
|
||||
id="cdt.managedbuild.config.gnu.macosx.base"
|
||||
cleanCommand="rm -rf"
|
||||
>
|
||||
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">
|
||||
<enablement type="CONTAINER_ATTRIBUTE"
|
||||
attribute="artifactExtension"
|
||||
value="dylib"
|
||||
|
@ -3669,8 +3671,9 @@
|
|||
</projectType>
|
||||
|
||||
<configuration
|
||||
id="cdt.managedbuild.config.gnu.solaris.base"
|
||||
cleanCommand="rm -rf">
|
||||
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">
|
||||
<enablement type="CONTAINER_ATTRIBUTE"
|
||||
attribute="artifactExtension"
|
||||
value="so"
|
||||
|
|
Loading…
Add table
Reference in a new issue