Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] externalSettingsProvider and built-in settings

Hi Mario,
As an alternative, you could use org.eclipse.cdt.managedbuilder.core.buildDefinitions extension point which lets you define the paths and set builtin flag in listOptionValue.


On Wed, Aug 26, 2009 at 9:00 AM, Mario Pierro <Mario.Pierro@xxxxxxx> wrote:

I am trying to use the externalSettingsProvider extension point to add
include/library paths and predefined symbols programmatically to my
custom project type.

Following the instructions at


I managed to successfully add an external settings provider which is
added to my projects via an ICProjectListener class.

However, flags in the ICSettingEntry instances contributed by the
external settings provider seem to be ignored.

For instance, I am doing the following

   public CExternalSetting[] getSettings(IProject project,
           ICConfigurationDescription cfg) {

       // We provide the same settings for all configurations

       // Create include path entries for all the contributed paths
       List<ICSettingEntry> includeSettings = new
       List<String> includePaths =
       for (String path : includePaths)
           includeSettings.add(new CIncludePathEntry(path,

where the getIncludePaths() will return my custom includes. I also
create CLibraryPathEntry and CMacroEntry objects in a very similar way.

I then create the CExternalSetting containers and send them out to CDT.


       return new CExternalSetting[] {
               // Include paths, for C/C++/ASM
               new CExternalSetting(new String[] {
                       "org.eclipse.cdt.core.g++" },
                       new String[] { "org.eclipse.cdt.core.asmSource"
                       null, includeSettings.toArray(new
               // Library
               new CExternalSetting(
                       new String[] {
"org.eclipse.cdt.managedbuilder.core.compiledObjectFile" },
                       null, librarySettings.toArray(new
               // Symbols
               new CExternalSetting(new String[] {
                       "org.eclipse.cdt.core.g++" }, null, null,
                       symbolSettings.toArray(new ICSettingEntry[0])),


This succeeds in contributing the paths and symbols to the project, but
they are not shown as built-in e.g. in the Include paths tab. Also, the
compiler will be invoked with -D options which attempt to redefine its
predefined symbols...

Is an external settings provider able to contribute built in
symbols/includes/etc.? I have not been able to find any further
documentation on this, nor any examples.

Thank you very much for your help!


cdt-dev mailing list

Back to the top