org.eclipse.cdt.core.build

## Interface ICBuildConfiguration

All Superinterfaces:
  org.eclipse.core.runtime.IAdaptable, IScannerInfoProvider

All Known Implementing Classes:
  CBuildConfiguration, ErrorBuildConfiguration, StandardBuildConfiguration

    public interface ICBuildConfiguration
    extends org.eclipse.core.runtime.IAdaptable, IScannerInfoProvider

This is the root interface for "new style" CDT build configurations. Adapting IBuildConfiguration to this interface will get you one of these. From here, adapt to the specific interface that you need and the configuration will provide one.

Since:
  6.0

### Field Summary

Fields
`static String` `DEFAULT_NAME` CDT doesn't like that the Platform default config name is an empty string.
`static String` `TOOLCHAIN_ID`
`static String` `TOOLCHAIN_TYPE`

### Method Summary

All Methods Instance Methods Abstract Methods Default Methods
`org.eclipse.core.resources.IProject[]` `build(int kind, Map<String,String> args, IConsole console, org.eclipse.core.runtime.IProgressMonitor monitor)` Perform the build.
`void` `clean(IConsole console, org.eclipse.core.runtime.IProgressMonitor monitor)` Perform clean.
`String` `getBinaryParserId()` Ids for the Binary Parsers to use when checking whether a file is a binary that can be launched.
`org.eclipse.core.resources.IBuildConfiguration` `getBuildConfiguration()` Returns the resources build configuration that this CDT build configuration is associated with.
`default IBinary[]` `getBuildOutput()` The binaries produced by the build.
`default Map<String,String>` `getDefaultProperties()` Returns the default values for the properties.
`default String` `getLaunchMode()` Return the launch mode associated with this build configuration.
`default Map<String,String>` `getProperties()` Return the properties for this build configuration.
`default String` `getProperty(String name)` Return the named property.
`IToolChain` `getToolChain()` Build Configurations are configurations for a given toolchain.
`IEnvironmentVariable` `getVariable(String name)` Return a build environment variable with a given name.
`IEnvironmentVariable[]` `getVariables()` Return all of the build environment variables for this configuration.
`default void` `removeProperty(String name)` Remove the named property.
`default void` `setBuildEnvironment(Map<String,String> env)` Set the environment for the builds.
`default boolean` `setProperties(Map<String,String> properties)` Set the properties for this build configuration.
`default void` `setProperty(String name, String value)` Set a property to the given value.
`default boolean` `supportsProperties(Map<String,String> properties)` Returns whether this build configuration supports the given build properties.

### Methods inherited from interface org.eclipse.core.runtime.IAdaptable

`getAdapter`

### Methods inherited from interface org.eclipse.cdt.core.parser.IScannerInfoProvider

`getScannerInformation, subscribe, unsubscribe`

### Field Detail

#### DEFAULT_NAME

    static final String DEFAULT_NAME

CDT doesn't like that the Platform default config name is an empty string. It needs a real name for the name of the build directory, for example.

See Also:
  Constant Field Values

#### TOOLCHAIN_TYPE

    static final String TOOLCHAIN_TYPE

Since:
  6.4
See Also:
  Constant Field Values

#### TOOLCHAIN_ID

    static final String TOOLCHAIN_ID

Since:
  6.4
See Also:
  Constant Field Values

### Method Detail

#### getBuildConfiguration

    org.eclipse.core.resources.IBuildConfiguration getBuildConfiguration()
                                                                  throws org.eclipse.core.runtime.CoreException

Returns the resources build configuration that this CDT build configuration is associated with.

Returns:
  resources build configuration
Throws:
  `org.eclipse.core.runtime.CoreException`

#### getToolChain

    IToolChain getToolChain()
                     throws org.eclipse.core.runtime.CoreException

Build Configurations are configurations for a given toolchain.

Returns:
  the toolchain for this build configuration
Throws:
  `org.eclipse.core.runtime.CoreException`

#### getLaunchMode

    default String getLaunchMode()

Return the launch mode associated with this build configuration.

Since:
  6.4

#### getBinaryParserId

    String getBinaryParserId()
                      throws org.eclipse.core.runtime.CoreException

Ids for the Binary Parsers to use when checking whether a file is a binary that can be launched.

Returns:
  binary parser ids
Throws:
  `org.eclipse.core.runtime.CoreException`

#### getVariable

    IEnvironmentVariable getVariable(String name)
                              throws org.eclipse.core.runtime.CoreException

Return a build environment variable with a given name.

Parameters:
  `name` - build environment variable name
Returns:
  value of the build environment variable.
Throws:
  `org.eclipse.core.runtime.CoreException`

#### getVariables

    IEnvironmentVariable[] getVariables()
                                 throws org.eclipse.core.runtime.CoreException

Return all of the build environment variables for this configuration.

Returns:
  environment variables
Throws:
  `org.eclipse.core.runtime.CoreException`

#### build

    org.eclipse.core.resources.IProject[] build(int kind,
                                                Map<String,String> args,
                                                IConsole console,
                                                org.eclipse.core.runtime.IProgressMonitor monitor)
                                         throws org.eclipse.core.runtime.CoreException

Perform the build.

Parameters:
  `kind` - build type
  `args` - build arguments
  `console` - console to show build output
  `monitor` - progress monitor
Returns:
  the list of projects for which this builder would like deltas the next time it is run or `null` if none
Throws:
  `org.eclipse.core.runtime.CoreException`

#### clean

    void clean(IConsole console,
               org.eclipse.core.runtime.IProgressMonitor monitor)
        throws org.eclipse.core.runtime.CoreException

Perform clean.

Parameters:
  `console` - console to show clean output
  `monitor` - progress monitor
Throws:
  `org.eclipse.core.runtime.CoreException`

#### getBuildOutput

    default IBinary[] getBuildOutput()
                              throws org.eclipse.core.runtime.CoreException

The binaries produced by the build.

Returns:
  binaries produced by the build.
Throws:
  `org.eclipse.core.runtime.CoreException`
Since:
  6.1

#### setBuildEnvironment

    default void setBuildEnvironment(Map<String,String> env)

Set the environment for the builds. Generally the environment from a ProcessBuilder would be passed here.

Parameters:
  `env` - build environment
Since:
  6.1

#### setProperties

    default boolean setProperties(Map<String,String> properties)

Set the properties for this build configuration. These will often come from launch configurations which have build settings as attributes.

Parameters:
  `properties` - build properties
Returns:
  whether the properties have changed
Since:
  6.2

#### getProperties

    default Map<String,String> getProperties()

Return the properties for this build configuration.

Returns:
  default properties
Since:
  6.2

#### getDefaultProperties

    default Map<String,String> getDefaultProperties()

Returns the default values for the properties.

Since:
  6.2

#### setProperty

    default void setProperty(String name,
                             String value)

Set a property to the given value.

Parameters:
  `name` - the name of the property
  `value` - the new value for the property
Since:
  6.4

#### removeProperty

    default void removeProperty(String name)

Remove the named property.

Parameters:
  `name` - name of the property
Since:
  6.4

#### getProperty

    default String getProperty(String name)

Return the named property.

Parameters:
  `name` - the name of the property
Since:
  6.4

#### supportsProperties

    default boolean supportsProperties(Map<String,String> properties)

Returns whether this build configuration supports the given build properties.

Parameters:
  `properties` - build properties
Returns:
  whether this build configuration supports those properties
Since:
  6.2