mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-20 07:25:23 +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() {
|
private boolean useLegacyScannerDiscoveryProfiles() {
|
||||||
boolean isLanguageSettingsProvidersEnabled = false;
|
boolean useLegacy = true;
|
||||||
ITool tool = getParent();
|
ITool tool = getParent();
|
||||||
if (tool!=null) {
|
if (tool != null) {
|
||||||
IBuildObject bo = tool.getParent();
|
IBuildObject toolchain = tool.getParent();
|
||||||
if (bo instanceof IToolChain) {
|
if (toolchain instanceof IToolChain && ((IToolChain) toolchain).getDefaultLanguageSettingsProviderIds() != null) {
|
||||||
IConfiguration cfg = ((IToolChain) bo).getParent();
|
IConfiguration cfg = ((IToolChain) toolchain).getParent();
|
||||||
if (cfg!=null) {
|
if (cfg != null && cfg.getDefaultLanguageSettingsProviderIds() != null) {
|
||||||
IResource rc = cfg.getOwner();
|
IResource rc = cfg.getOwner();
|
||||||
if (rc!=null) {
|
if (rc != null) {
|
||||||
IProject project = rc.getProject();
|
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() {
|
public String getDiscoveryProfileIdAttribute() {
|
||||||
if (isLegacyScannerDiscovery()) {
|
String discoveryProfileAttribute = getDiscoveryProfileIdAttributeInternal();
|
||||||
return getLegacyDiscoveryProfileIdAttribute();
|
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 String secondaryOutputIds;
|
||||||
private Boolean isAbstract;
|
private Boolean isAbstract;
|
||||||
private String defaultLanguageSettingsProviderIds;
|
private String defaultLanguageSettingsProviderIds;
|
||||||
private String scannerConfigDiscoveryProfileId;
|
private String scannerConfigDiscoveryProfileId;
|
||||||
private String versionsSupported;
|
private String versionsSupported;
|
||||||
private String convertToId;
|
private String convertToId;
|
||||||
private IConfigurationElement managedIsToolChainSupportedElement = null;
|
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() {
|
private boolean useLegacyScannerDiscoveryProfiles() {
|
||||||
boolean isLanguageSettingsProvidersEnabled = false;
|
boolean useLegacy = true;
|
||||||
IConfiguration cfg = getParent();
|
if (getDefaultLanguageSettingsProviderIds() != null) {
|
||||||
if (cfg != null) {
|
IConfiguration cfg = getParent();
|
||||||
IResource rc = cfg.getOwner();
|
if (cfg != null && cfg.getDefaultLanguageSettingsProviderIds() != null) {
|
||||||
if (rc != null) {
|
IResource rc = cfg.getOwner();
|
||||||
IProject project = rc.getProject();
|
if (rc != null) {
|
||||||
isLanguageSettingsProvidersEnabled = ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(project);
|
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
|
@Override
|
||||||
public String getScannerConfigDiscoveryProfileId() {
|
public String getScannerConfigDiscoveryProfileId() {
|
||||||
if (isLegacyScannerDiscovery()) {
|
String discoveryProfileId = getScannerConfigDiscoveryProfileIdInternal();
|
||||||
return getLegacyScannerConfigDiscoveryProfileId();
|
if (discoveryProfileId == null && useLegacyScannerDiscoveryProfiles()) {
|
||||||
|
discoveryProfileId = getLegacyScannerConfigDiscoveryProfileId();
|
||||||
}
|
}
|
||||||
|
|
||||||
return getScannerConfigDiscoveryProfileIdInternal();
|
return discoveryProfileId;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -533,9 +533,7 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
|
||||||
}
|
}
|
||||||
providers.add(provider);
|
providers.add(provider);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
|
|
||||||
if (providers.isEmpty()) {
|
|
||||||
providers = ScannerDiscoveryLegacySupport.getDefaultProvidersLegacy();
|
providers = ScannerDiscoveryLegacySupport.getDefaultProvidersLegacy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1923,10 +1923,11 @@
|
||||||
|
|
||||||
<toolChain
|
<toolChain
|
||||||
archList="all"
|
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"
|
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"
|
osList="macosx"
|
||||||
id="cdt.managedbuild.toolchain.gnu.macosx.base">
|
targetTool="cdt.managedbuild.tool.macosx.c.linker.macosx.base;cdt.managedbuild.tool.macosx.cpp.linker.macosx.base;cdt.managedbuild.tool.gnu.archiver">
|
||||||
<targetPlatform
|
<targetPlatform
|
||||||
id="cdt.managedbuild.target.gnu.platform.macosx.base"
|
id="cdt.managedbuild.target.gnu.platform.macosx.base"
|
||||||
name="%PlatformName.Dbg"
|
name="%PlatformName.Dbg"
|
||||||
|
@ -2053,9 +2054,10 @@
|
||||||
|
|
||||||
<toolChain
|
<toolChain
|
||||||
archList="all"
|
archList="all"
|
||||||
osList="solaris"
|
|
||||||
id="cdt.managedbuild.toolchain.gnu.solaris.base"
|
id="cdt.managedbuild.toolchain.gnu.solaris.base"
|
||||||
|
languageSettingsProviders="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser;org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetector"
|
||||||
name="%ToolChainName.Solaris"
|
name="%ToolChainName.Solaris"
|
||||||
|
osList="solaris"
|
||||||
superClass="cdt.managedbuild.toolchain.gnu.base">
|
superClass="cdt.managedbuild.toolchain.gnu.base">
|
||||||
<targetPlatform
|
<targetPlatform
|
||||||
id="cdt.managedbuild.target.gnu.solaris.base"
|
id="cdt.managedbuild.target.gnu.solaris.base"
|
||||||
|
@ -3256,9 +3258,9 @@
|
||||||
</projectType>
|
</projectType>
|
||||||
|
|
||||||
<configuration
|
<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"
|
<enablement type="CONTAINER_ATTRIBUTE"
|
||||||
attribute="artifactExtension"
|
attribute="artifactExtension"
|
||||||
value="dylib"
|
value="dylib"
|
||||||
|
@ -3669,8 +3671,9 @@
|
||||||
</projectType>
|
</projectType>
|
||||||
|
|
||||||
<configuration
|
<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"
|
<enablement type="CONTAINER_ATTRIBUTE"
|
||||||
attribute="artifactExtension"
|
attribute="artifactExtension"
|
||||||
value="so"
|
value="so"
|
||||||
|
|
Loading…
Add table
Reference in a new issue