mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-26 02:15:31 +02:00
bug 416628: "Export" of entries of language settings providers to referencing projects - added provider to do that
This commit is contained in:
parent
da95189bb4
commit
6856d55b68
16 changed files with 349 additions and 39 deletions
|
@ -392,7 +392,7 @@
|
|||
cleanCommand="rm -rf"
|
||||
errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser"
|
||||
id="org.eclipse.linuxtools.cdt.autotools.core.configuration.build"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain}"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain}"
|
||||
name="%Configuration.build.name">
|
||||
<toolChain
|
||||
archList="all"
|
||||
|
|
|
@ -20,8 +20,10 @@ import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsPersiste
|
|||
import org.eclipse.cdt.core.language.settings.providers.ScannerDiscoveryLegacySupport;
|
||||
import org.eclipse.cdt.core.model.CoreModel;
|
||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
import org.eclipse.cdt.core.settings.model.ICProjectDescription;
|
||||
import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.ReferencedProjectsLanguageSettingsProvider;
|
||||
import org.eclipse.cdt.managedbuilder.testplugin.ManagedBuildTestHelper;
|
||||
import org.eclipse.core.resources.IFile;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
|
@ -31,6 +33,7 @@ import org.eclipse.core.resources.IProject;
|
|||
*/
|
||||
public class LanguageSettingsProvidersMBSTest extends BaseTestCase {
|
||||
private static final String MBS_LANGUAGE_SETTINGS_PROVIDER_ID = ScannerDiscoveryLegacySupport.MBS_LANGUAGE_SETTINGS_PROVIDER_ID;
|
||||
private static final String REFERENCED_PROJECTS_PROVIDER_ID = ReferencedProjectsLanguageSettingsProvider.ID;
|
||||
private static final String USER_LANGUAGE_SETTINGS_PROVIDER_ID = ScannerDiscoveryLegacySupport.USER_LANGUAGE_SETTINGS_PROVIDER_ID;
|
||||
private static final String GCC_SPECS_DETECTOR_ID = "org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetector";
|
||||
private static final String PROJECT_TYPE_EXECUTABLE_GNU = "cdt.managedbuild.target.gnu.exe";
|
||||
|
@ -48,6 +51,16 @@ public class LanguageSettingsProvidersMBSTest extends BaseTestCase {
|
|||
super.tearDown();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that null arguments don't crash the provider.
|
||||
*/
|
||||
public void testNulls() throws Exception {
|
||||
ILanguageSettingsProvider provider = LanguageSettingsManager.getWorkspaceProvider(MBS_LANGUAGE_SETTINGS_PROVIDER_ID);
|
||||
assertNotNull(provider);
|
||||
List<ICLanguageSettingEntry> entries = provider.getSettingEntries(null, null, null);
|
||||
assertEquals(null, entries);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test new GNU Executable project.
|
||||
*/
|
||||
|
@ -74,18 +87,25 @@ public class LanguageSettingsProvidersMBSTest extends BaseTestCase {
|
|||
{
|
||||
ILanguageSettingsProvider provider = providers.get(1);
|
||||
String id = provider.getId();
|
||||
assertEquals(MBS_LANGUAGE_SETTINGS_PROVIDER_ID, id);
|
||||
assertEquals(REFERENCED_PROJECTS_PROVIDER_ID, id);
|
||||
assertEquals(true, LanguageSettingsManager.isPreferShared(id));
|
||||
assertEquals(true, LanguageSettingsManager.isWorkspaceProvider(provider));
|
||||
}
|
||||
{
|
||||
ILanguageSettingsProvider provider = providers.get(2);
|
||||
String id = provider.getId();
|
||||
assertEquals(MBS_LANGUAGE_SETTINGS_PROVIDER_ID, id);
|
||||
assertEquals(true, LanguageSettingsManager.isPreferShared(id));
|
||||
assertEquals(true, LanguageSettingsManager.isWorkspaceProvider(provider));
|
||||
}
|
||||
{
|
||||
ILanguageSettingsProvider provider = providers.get(3);
|
||||
String id = provider.getId();
|
||||
assertEquals(GCC_SPECS_DETECTOR_ID, id);
|
||||
assertEquals(true, LanguageSettingsManager.isPreferShared(id));
|
||||
assertEquals(true, LanguageSettingsManager.isWorkspaceProvider(provider));
|
||||
}
|
||||
assertEquals(3, providers.size());
|
||||
assertEquals(4, providers.size());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -308,13 +308,13 @@
|
|||
</managedBuildRevision>
|
||||
<configuration
|
||||
id="org.eclipse.cdt.build.core.emptycfg"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;${Toolchain};org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;${Toolchain};org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider"
|
||||
name="%cfg1_empty">
|
||||
</configuration>
|
||||
|
||||
<configuration
|
||||
id="org.eclipse.cdt.build.core.prefbase.cfg"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;${Toolchain};org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;${Toolchain};org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider"
|
||||
name="%cfg1_base">
|
||||
<toolChain
|
||||
id="org.eclipse.cdt.build.core.prefbase.toolchain"
|
||||
|
|
|
@ -44,6 +44,9 @@ import org.eclipse.core.variables.VariablesPlugin;
|
|||
public class MBSLanguageSettingsProvider extends AbstractExecutableExtensionBase implements ILanguageSettingsBroadcastingProvider {
|
||||
@Override
|
||||
public List<ICLanguageSettingEntry> getSettingEntries(ICConfigurationDescription cfgDescription, IResource rc, String languageId) {
|
||||
if (cfgDescription == null || rc == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
IPath projectPath = rc.getProjectRelativePath();
|
||||
ICLanguageSetting[] languageSettings = null;
|
||||
|
|
|
@ -2168,7 +2168,7 @@
|
|||
<configuration
|
||||
cleanCommand="rm -rf"
|
||||
id="cdt.managedbuild.config.gnu.base"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
<enablement type="CONTAINER_ATTRIBUTE"
|
||||
attribute="artifactExtension"
|
||||
value="so"
|
||||
|
@ -2566,7 +2566,7 @@
|
|||
artifactExtension="exe"
|
||||
cleanCommand="rm -rf"
|
||||
id="cdt.managedbuild.config.gnu.cygwin.base"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
<enablement type="CONTAINER_ATTRIBUTE"
|
||||
attribute="artifactExtension"
|
||||
value="dll"
|
||||
|
@ -2964,7 +2964,7 @@
|
|||
artifactExtension="exe"
|
||||
cleanCommand="rm -rf"
|
||||
id="cdt.managedbuild.config.gnu.mingw.base"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
<enablement type="CONTAINER_ATTRIBUTE"
|
||||
attribute="artifactExtension"
|
||||
value="dll"
|
||||
|
@ -3340,7 +3340,7 @@
|
|||
<configuration
|
||||
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">
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
<enablement type="CONTAINER_ATTRIBUTE"
|
||||
attribute="artifactExtension"
|
||||
value="dylib"
|
||||
|
@ -3753,7 +3753,7 @@
|
|||
<configuration
|
||||
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">
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
<enablement type="CONTAINER_ATTRIBUTE"
|
||||
attribute="artifactExtension"
|
||||
value="so"
|
||||
|
|
|
@ -30,6 +30,7 @@ public class AllLanguageSettingsProvidersCoreTests {
|
|||
suite.addTest(LanguageSettingsPersistenceProjectTests.suite());
|
||||
suite.addTest(LanguageSettingsListenersTests.suite());
|
||||
suite.addTest(LanguageSettingsScannerInfoProviderTests.suite());
|
||||
suite.addTest(LanguageSettingsProviderReferencedProjectsTests.suite());
|
||||
return suite;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@ import org.eclipse.cdt.core.testplugin.CModelMock;
|
|||
import org.eclipse.cdt.core.testplugin.ResourceHelper;
|
||||
import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.LanguageSettingsProvidersSerializer;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.ReferencedProjectsLanguageSettingsProvider;
|
||||
import org.eclipse.cdt.internal.core.settings.model.CConfigurationDescription;
|
||||
import org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager;
|
||||
import org.eclipse.core.resources.IFile;
|
||||
|
@ -703,8 +704,9 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
// ensure no test provider is set yet but default providers
|
||||
List<ILanguageSettingsProvider> providers = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
|
||||
assertEquals(ScannerDiscoveryLegacySupport.USER_LANGUAGE_SETTINGS_PROVIDER_ID, providers.get(0).getId());
|
||||
assertEquals(ScannerDiscoveryLegacySupport.MBS_LANGUAGE_SETTINGS_PROVIDER_ID, providers.get(1).getId());
|
||||
assertEquals(2, providers.size());
|
||||
assertEquals(ReferencedProjectsLanguageSettingsProvider.ID, providers.get(1).getId());
|
||||
assertEquals(ScannerDiscoveryLegacySupport.MBS_LANGUAGE_SETTINGS_PROVIDER_ID, providers.get(2).getId());
|
||||
assertEquals(3, providers.size());
|
||||
}
|
||||
{
|
||||
// set test provider
|
||||
|
|
|
@ -0,0 +1,210 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2013 Andrew Gvozdev and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Andrew Gvozdev - Initial API and implementation
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.cdt.core.language.settings.providers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import junit.framework.TestSuite;
|
||||
|
||||
import org.eclipse.cdt.core.model.CoreModel;
|
||||
import org.eclipse.cdt.core.settings.model.CIncludePathEntry;
|
||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
import org.eclipse.cdt.core.settings.model.ICProjectDescription;
|
||||
import org.eclipse.cdt.core.settings.model.ICProjectDescriptionManager;
|
||||
import org.eclipse.cdt.core.settings.model.ICSettingEntry;
|
||||
import org.eclipse.cdt.core.settings.model.util.CDataUtil;
|
||||
import org.eclipse.cdt.core.testplugin.ResourceHelper;
|
||||
import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.ReferencedProjectsLanguageSettingsProvider;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
|
||||
/**
|
||||
* Test cases testing ReferencedProjectsLanguageSettingsProvider functionality
|
||||
*/
|
||||
public class LanguageSettingsProviderReferencedProjectsTests extends BaseTestCase {
|
||||
/**
|
||||
* Constructor.
|
||||
* @param name - name of the test.
|
||||
*/
|
||||
public LanguageSettingsProviderReferencedProjectsTests(String name) {
|
||||
super(name);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void tearDown() throws Exception {
|
||||
super.tearDown(); // includes ResourceHelper cleanup
|
||||
}
|
||||
|
||||
/**
|
||||
* @return - new TestSuite.
|
||||
*/
|
||||
public static TestSuite suite() {
|
||||
return new TestSuite(LanguageSettingsProviderReferencedProjectsTests.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* main function of the class.
|
||||
*
|
||||
* @param args - arguments
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
junit.textui.TestRunner.run(suite());
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method to fetch configuration descriptions.
|
||||
*/
|
||||
private ICConfigurationDescription[] getConfigurationDescriptions(IProject project) {
|
||||
CoreModel coreModel = CoreModel.getDefault();
|
||||
ICProjectDescriptionManager mngr = coreModel.getProjectDescriptionManager();
|
||||
// project description
|
||||
ICProjectDescription projectDescription = mngr.getProjectDescription(project, false);
|
||||
assertNotNull(projectDescription);
|
||||
assertEquals(1, projectDescription.getConfigurations().length);
|
||||
// configuration description
|
||||
ICConfigurationDescription[] cfgDescriptions = projectDescription.getConfigurations();
|
||||
return cfgDescriptions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method to set reference project.
|
||||
*/
|
||||
private void setReference(IProject project, final IProject projectReferenced) throws CoreException {
|
||||
{
|
||||
CoreModel coreModel = CoreModel.getDefault();
|
||||
ICProjectDescriptionManager mngr = coreModel.getProjectDescriptionManager();
|
||||
// project description
|
||||
ICProjectDescription projectDescription = mngr.getProjectDescription(project);
|
||||
assertNotNull(projectDescription);
|
||||
assertEquals(1, projectDescription.getConfigurations().length);
|
||||
// configuration description
|
||||
ICConfigurationDescription[] cfgDescriptions = projectDescription.getConfigurations();
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
|
||||
final ICConfigurationDescription cfgDescriptionReferenced = getConfigurationDescriptions(projectReferenced)[0];
|
||||
cfgDescription.setReferenceInfo(new HashMap<String, String>() {{ put(projectReferenced.getName(), cfgDescriptionReferenced.getId()); }});
|
||||
coreModel.setProjectDescription(project, projectDescription);
|
||||
}
|
||||
|
||||
{
|
||||
// doublecheck that it's set as expected
|
||||
ICConfigurationDescription[] cfgDescriptions = getConfigurationDescriptions(project);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
Map<String,String> refs = cfgDescription.getReferenceInfo();
|
||||
assertEquals(1, refs.size());
|
||||
Set<String> referencedProjectsNames = new LinkedHashSet<String>(refs.keySet());
|
||||
assertEquals(projectReferenced.getName(), referencedProjectsNames.toArray()[0]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that null arguments don't crash the provider.
|
||||
*/
|
||||
public void testNulls() throws Exception {
|
||||
ILanguageSettingsProvider provider = LanguageSettingsManager.getWorkspaceProvider(ReferencedProjectsLanguageSettingsProvider.ID);
|
||||
assertNotNull(provider);
|
||||
List<ICLanguageSettingEntry> entries = provider.getSettingEntries(null, null, null);
|
||||
assertEquals(null, entries);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test main functionality of ReferencedProjectsLanguageSettingsProvider.
|
||||
*/
|
||||
public void testReferencedProjectProvider() throws Exception {
|
||||
// Create model project and accompanied descriptions
|
||||
String projectName = getName();
|
||||
IProject project = ResourceHelper.createCDTProjectWithConfig(projectName);
|
||||
IProject nonReferencedProject = ResourceHelper.createCDTProjectWithConfig(projectName+"-non-referenced");
|
||||
IProject referencedProject = ResourceHelper.createCDTProjectWithConfig(projectName+"-referenced");
|
||||
setReference(project, referencedProject);
|
||||
|
||||
// get cfgDescription and language to work with
|
||||
ICConfigurationDescription[] cfgDescriptions = getConfigurationDescriptions(project);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
|
||||
{
|
||||
// doublecheck that provider for referenced projects is set in the configuration
|
||||
ILanguageSettingsProvider refProjectsProvider = LanguageSettingsManager.getWorkspaceProvider(ReferencedProjectsLanguageSettingsProvider.ID);
|
||||
assertNotNull(refProjectsProvider);
|
||||
List<ILanguageSettingsProvider> providers = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
|
||||
assertTrue(providers.contains(refProjectsProvider));
|
||||
}
|
||||
|
||||
// Check that no setting entries are set initially
|
||||
{
|
||||
List<ICLanguageSettingEntry> entries = LanguageSettingsManager.getSettingEntriesByKind(cfgDescription, project, null, ICSettingEntry.ALL);
|
||||
assertEquals(0, entries.size());
|
||||
}
|
||||
|
||||
// Add an entry into a non-referenced project
|
||||
CIncludePathEntry nonRefEntry = CDataUtil.createCIncludePathEntry("non-referenced-exported", ICSettingEntry.EXPORTED);
|
||||
{
|
||||
ICConfigurationDescription[] nonRefCfgDescriptions = getConfigurationDescriptions(nonReferencedProject);
|
||||
ICConfigurationDescription nonRefCfgDescription = nonRefCfgDescriptions[0];
|
||||
List<ILanguageSettingsProvider> providersNonRef = ((ILanguageSettingsProvidersKeeper) nonRefCfgDescription).getLanguageSettingProviders();
|
||||
// get user provider which is the first one
|
||||
ILanguageSettingsProvider userProviderNonRef = providersNonRef.get(0);
|
||||
assertEquals(ScannerDiscoveryLegacySupport.USER_LANGUAGE_SETTINGS_PROVIDER_ID, userProviderNonRef.getId());
|
||||
assertTrue(userProviderNonRef instanceof LanguageSettingsGenericProvider);
|
||||
// add sample entries
|
||||
ArrayList<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
||||
entries.add(nonRefEntry);
|
||||
((LanguageSettingsGenericProvider) userProviderNonRef).setSettingEntries(null, null, null, entries);
|
||||
}
|
||||
// Confirm that that does not add entries to the main project
|
||||
{
|
||||
List<ICLanguageSettingEntry> entries = LanguageSettingsManager.getSettingEntriesByKind(cfgDescription, project, null, ICSettingEntry.ALL);
|
||||
assertEquals(0, entries.size());
|
||||
}
|
||||
|
||||
CIncludePathEntry refEntry = CDataUtil.createCIncludePathEntry("referenced-exported", ICSettingEntry.EXPORTED);
|
||||
// Add entries into a referenced project
|
||||
{
|
||||
ICConfigurationDescription[] refCfgDescriptions = getConfigurationDescriptions(referencedProject);
|
||||
ICConfigurationDescription refCfgDescription = refCfgDescriptions[0];
|
||||
List<ILanguageSettingsProvider> providersRef = ((ILanguageSettingsProvidersKeeper) refCfgDescription).getLanguageSettingProviders();
|
||||
// get user provider which is the first one
|
||||
ILanguageSettingsProvider userProviderRef = providersRef.get(0);
|
||||
assertEquals(ScannerDiscoveryLegacySupport.USER_LANGUAGE_SETTINGS_PROVIDER_ID, userProviderRef.getId());
|
||||
assertTrue(userProviderRef instanceof LanguageSettingsGenericProvider);
|
||||
// add sample entries
|
||||
ArrayList<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
||||
CIncludePathEntry refEntryNotExported = CDataUtil.createCIncludePathEntry("referenced-not-exported", 0);
|
||||
entries.add(refEntry);
|
||||
entries.add(refEntryNotExported);
|
||||
((LanguageSettingsGenericProvider) userProviderRef).setSettingEntries(null, null, null, entries);
|
||||
List<ICLanguageSettingEntry> entriesActual = LanguageSettingsManager.getSettingEntriesByKind(refCfgDescription, project, null, ICSettingEntry.ALL);
|
||||
assertEquals(entries, entriesActual);
|
||||
}
|
||||
// Check that the new entries from referenced project made it to the main project
|
||||
{
|
||||
List<ICLanguageSettingEntry> entries = LanguageSettingsManager.getSettingEntriesByKind(cfgDescription, project, null, ICSettingEntry.ALL);
|
||||
assertEquals(CDataUtil.createCIncludePathEntry(refEntry.getName(), 0), entries.get(0));
|
||||
assertEquals(1, entries.size());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -21,6 +21,7 @@ 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.internal.core.LocalProjectScope;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.ReferencedProjectsLanguageSettingsProvider;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.ScannerInfoExtensionLanguageSettingsProvider;
|
||||
import org.eclipse.cdt.internal.core.model.PathEntryManager;
|
||||
import org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager;
|
||||
|
@ -212,7 +213,7 @@ public class ScannerDiscoveryLegacySupport {
|
|||
legacyProviderId = PATH_ENTRY_MANAGER_LANGUAGE_SETTINGS_PROVIDER_ID;
|
||||
}
|
||||
|
||||
return new String[] {USER_LANGUAGE_SETTINGS_PROVIDER_ID, legacyProviderId};
|
||||
return new String[] {USER_LANGUAGE_SETTINGS_PROVIDER_ID, ReferencedProjectsLanguageSettingsProvider.ID, legacyProviderId};
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -12,13 +12,14 @@
|
|||
package org.eclipse.cdt.internal.core.language.settings.providers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import org.eclipse.cdt.core.AbstractExecutableExtensionBase;
|
||||
import org.eclipse.cdt.core.CCorePlugin;
|
||||
|
@ -81,20 +82,20 @@ public class LanguageSettingsExtensionManager {
|
|||
* Load language settings providers contributed via the extension point.
|
||||
*/
|
||||
synchronized private static void loadProviderExtensions() {
|
||||
// sort by name - the providers defined via extensions are kept in separate list sorted by name
|
||||
Set<ILanguageSettingsProvider> sortedProviders = new TreeSet<ILanguageSettingsProvider>(
|
||||
new Comparator<ILanguageSettingsProvider>() {
|
||||
@Override
|
||||
public int compare(ILanguageSettingsProvider pr1, ILanguageSettingsProvider pr2) {
|
||||
return pr1.getName().compareTo(pr2.getName());
|
||||
}
|
||||
}
|
||||
);
|
||||
List<ILanguageSettingsProvider> providers = new ArrayList<ILanguageSettingsProvider>();
|
||||
loadProviderExtensions(Platform.getExtensionRegistry(), providers);
|
||||
|
||||
loadProviderExtensions(Platform.getExtensionRegistry(), sortedProviders);
|
||||
// sort by name - the providers defined via extensions are kept in separate list sorted by name
|
||||
Collections.sort(providers, new Comparator<ILanguageSettingsProvider>() {
|
||||
@Override
|
||||
public int compare(ILanguageSettingsProvider pr1, ILanguageSettingsProvider pr2) {
|
||||
return pr1.getName().compareTo(pr2.getName());
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
fExtensionProviders.clear();
|
||||
for (ILanguageSettingsProvider provider : sortedProviders) {
|
||||
for (ILanguageSettingsProvider provider : providers) {
|
||||
fExtensionProviders.put(provider.getId(), provider);
|
||||
}
|
||||
}
|
||||
|
@ -105,7 +106,7 @@ public class LanguageSettingsExtensionManager {
|
|||
* @param registry - extension registry
|
||||
* @param providers - resulting set of providers
|
||||
*/
|
||||
private static void loadProviderExtensions(IExtensionRegistry registry, Set<ILanguageSettingsProvider> providers) {
|
||||
private static void loadProviderExtensions(IExtensionRegistry registry, Collection<ILanguageSettingsProvider> providers) {
|
||||
providers.clear();
|
||||
IExtensionPoint extension = registry.getExtensionPoint(CCorePlugin.PLUGIN_ID, PROVIDER_EXTENSION_SIMPLE_ID);
|
||||
if (extension != null) {
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2013, 2013 Andrew Gvozdev and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Andrew Gvozdev - Initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.core.language.settings.providers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsBaseProvider;
|
||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager;
|
||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsStorage;
|
||||
import org.eclipse.cdt.core.model.CoreModelUtil;
|
||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
import org.eclipse.cdt.core.settings.model.ICProjectDescription;
|
||||
import org.eclipse.cdt.core.settings.model.ICSettingEntry;
|
||||
import org.eclipse.cdt.core.settings.model.util.CDataUtil;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
|
||||
/**
|
||||
* Language settings provider to provide entries exported from referenced projects.
|
||||
*/
|
||||
public class ReferencedProjectsLanguageSettingsProvider extends LanguageSettingsBaseProvider {
|
||||
/** ID of the provider used in extension point from plugin.xml */
|
||||
public static final String ID = "org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider"; //$NON-NLS-1$
|
||||
|
||||
@Override
|
||||
public List<ICLanguageSettingEntry> getSettingEntries(ICConfigurationDescription cfgDescription, IResource rc, String languageId) {
|
||||
if (cfgDescription == null) {
|
||||
return null;
|
||||
}
|
||||
ICProjectDescription prjDescription = cfgDescription.getProjectDescription();
|
||||
if (prjDescription == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
||||
ICConfigurationDescription[] refCfgDescriptions = CoreModelUtil.getReferencedConfigurationDescriptions(cfgDescription, false);
|
||||
for (ICConfigurationDescription refCfgDescription : refCfgDescriptions) {
|
||||
List<ICLanguageSettingEntry> refEntries = LanguageSettingsManager.getSettingEntriesByKind(refCfgDescription, rc, languageId, ICSettingEntry.ALL);
|
||||
for (ICLanguageSettingEntry refEntry : refEntries) {
|
||||
int flags = refEntry.getFlags();
|
||||
if ((flags & ICSettingEntry.EXPORTED) == ICSettingEntry.EXPORTED) {
|
||||
// create a new entry with EXPORTED flag cleared
|
||||
ICLanguageSettingEntry entry = CDataUtil.createEntry(refEntry, flags & ~ICSettingEntry.EXPORTED);
|
||||
entries.add(entry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return LanguageSettingsStorage.getPooledList(new ArrayList<ICLanguageSettingEntry>(entries));
|
||||
}
|
||||
}
|
|
@ -136,3 +136,4 @@ refreshExclusionFactory.name = Refresh Exclusion Factory
|
|||
uncPathConverter.name = UNC Path Converter
|
||||
ScannerInfoExtensionLanguageSettingsProvider.name=Contributed ScannerInfo Entries
|
||||
PathEntryScannerInfoLanguageSettingsProvider.name=Contributed PathEntry Containers
|
||||
ReferencedProjectsLanguageSettingsProvider.name=Exported Entries from Referenced Projects
|
||||
|
|
|
@ -819,6 +819,11 @@
|
|||
id="org.eclipse.cdt.core.PathEntryScannerInfoLanguageSettingsProvider"
|
||||
name="%PathEntryScannerInfoLanguageSettingsProvider.name">
|
||||
</provider>
|
||||
<provider
|
||||
class="org.eclipse.cdt.internal.core.language.settings.providers.ReferencedProjectsLanguageSettingsProvider"
|
||||
id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider"
|
||||
name="%ReferencedProjectsLanguageSettingsProvider.name">
|
||||
</provider>
|
||||
</extension>
|
||||
|
||||
</plugin>
|
||||
|
|
|
@ -4482,6 +4482,12 @@
|
|||
ui-clear-entries="true"
|
||||
ui-edit-entries="true">
|
||||
</id-association>
|
||||
<id-association
|
||||
id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider"
|
||||
icon="icons/obj16/search_ref_obj.gif"
|
||||
ui-clear-entries="false"
|
||||
ui-edit-entries="false">
|
||||
</id-association>
|
||||
</extension>
|
||||
<extension point="org.eclipse.cdt.ui.cPropertyTab">
|
||||
<tab
|
||||
|
|
|
@ -1508,7 +1508,7 @@
|
|||
<configuration
|
||||
cleanCommand="rm -rf"
|
||||
id="cdt.managedbuild.config.llvm.clang.linux.base"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
<enablement
|
||||
attribute="artifactExtension"
|
||||
extensionAdjustment="false"
|
||||
|
@ -1797,7 +1797,7 @@
|
|||
<configuration
|
||||
cleanCommand="rm -rf"
|
||||
id="cdt.managedbuild.config.llvm.clang.macosx.base"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
<enablement
|
||||
attribute="artifactExtension"
|
||||
extensionAdjustment="false"
|
||||
|
@ -2084,7 +2084,7 @@
|
|||
<configuration
|
||||
cleanCommand="rm -rf"
|
||||
id="cdt.managedbuild.config.llvm.clang.win32.cygwin.base"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
<enablement
|
||||
attribute="artifactExtension"
|
||||
extensionAdjustment="false"
|
||||
|
@ -2373,7 +2373,7 @@
|
|||
<configuration
|
||||
cleanCommand="rm -rf"
|
||||
id="cdt.managedbuild.config.llvm.clang.win32.mingw.base"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
<enablement
|
||||
attribute="artifactExtension"
|
||||
extensionAdjustment="false"
|
||||
|
@ -2662,7 +2662,7 @@
|
|||
<configuration
|
||||
cleanCommand="rm -rf"
|
||||
id="cdt.managedbuild.config.llvm.gnu.linux.base"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
<enablement
|
||||
attribute="artifactExtension"
|
||||
extensionAdjustment="false"
|
||||
|
@ -3242,7 +3242,7 @@
|
|||
artifactExtension="exe"
|
||||
cleanCommand="rm -rf"
|
||||
id="cdt.managedbuild.config.llvm.gnu.win32.cygwin.base"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
<enablement
|
||||
attribute="artifactExtension"
|
||||
extensionAdjustment="false"
|
||||
|
@ -3532,7 +3532,7 @@
|
|||
artifactExtension="exe"
|
||||
cleanCommand="rm -rf"
|
||||
id="cdt.managedbuild.config.llvm.gnu.win32.mingw.base"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser">
|
||||
<enablement
|
||||
attribute="artifactExtension"
|
||||
extensionAdjustment="false"
|
||||
|
|
|
@ -526,7 +526,7 @@
|
|||
cleanCommand="rm -rf"
|
||||
errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
|
||||
id="cdt.managedbuild.config.xlc.exe.debug"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser"
|
||||
name="%ConfigName.Dbg">
|
||||
<toolChain
|
||||
archList="all"
|
||||
|
@ -593,7 +593,7 @@
|
|||
artifactExtension="exe"
|
||||
cleanCommand="rm -rf"
|
||||
errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser"
|
||||
id="cdt.managedbuild.config.xlc.exe.release">
|
||||
<toolChain
|
||||
archList="all"
|
||||
|
@ -667,7 +667,7 @@
|
|||
cleanCommand="rm -rf"
|
||||
artifactExtension="so"
|
||||
errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser"
|
||||
id="cdt.managedbuild.config.xlc.so.debug">
|
||||
<toolChain
|
||||
id="cdt.managedbuild.toolchain.xlc.so.debug"
|
||||
|
@ -731,7 +731,7 @@
|
|||
cleanCommand="rm -rf"
|
||||
artifactExtension="so"
|
||||
errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser"
|
||||
id="cdt.managedbuild.config.xlc.so.release">
|
||||
<toolChain
|
||||
id="cdt.managedbuild.toolchain.xlc.so.release"
|
||||
|
@ -803,7 +803,7 @@
|
|||
cleanCommand="rm -rf"
|
||||
artifactExtension="lib"
|
||||
errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser"
|
||||
id="cdt.managedbuild.config.xlc.lib.debug">
|
||||
<toolChain
|
||||
id="cdt.managedbuild.toolchain.xlc.lib.debug"
|
||||
|
@ -863,7 +863,7 @@
|
|||
cleanCommand="rm -rf"
|
||||
artifactExtension="lib"
|
||||
errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser"
|
||||
languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser"
|
||||
id="cdt.managedbuild.config.xlc.lib.release">
|
||||
<toolChain
|
||||
id="cdt.managedbuild.toolchain.xlc.lib.release"
|
||||
|
|
Loading…
Add table
Reference in a new issue