Package org.eclipse.cdt.core.build

## Interface ICBuildConfigurationManager

    public interface ICBuildConfigurationManager

The OSGi service that manages the mapping from platform build configuration to CDT build configuration.

Since:
  6.0
Restriction:
  This interface is not intended to be implemented by clients.

### Method Summary

All Methods Instance Methods Abstract Methods Deprecated Methods
`void` `addBuildConfiguration​(org.eclipse.core.resources.IBuildConfiguration buildConfig, ICBuildConfiguration cConfig)` Called by providers to add new build configurations as they are created.
`org.eclipse.core.resources.IBuildConfiguration` `createBuildConfiguration​(ICBuildConfigurationProvider provider, org.eclipse.core.resources.IProject project, String configName, org.eclipse.core.runtime.IProgressMonitor monitor)` Create a new build configuration to be owned by a provider.
`ICBuildConfiguration` `getBuildConfiguration​(org.eclipse.core.resources.IBuildConfiguration buildConfig)` Return the CDT build configuration associated with the given Platform build configuration.
`ICBuildConfiguration` `getBuildConfiguration​(org.eclipse.core.resources.IProject project, Map<String,​String> properties, String launchMode, org.eclipse.core.runtime.IProgressMonitor monitor)` Deprecated. clients really need to pick which toolchain they want a build config for.
`ICBuildConfiguration` `getBuildConfiguration​(org.eclipse.core.resources.IProject project, IToolChain toolChain, String launchMode, org.eclipse.core.runtime.IProgressMonitor monitor)` Create a new build configuration for a given project using a given toolchain and builds for a given launch mode.
`ICBuildConfigurationProvider` `getProvider​(String id)` Return the build configuration provider with the given id.
`boolean` `hasConfiguration​(ICBuildConfigurationProvider provider, org.eclipse.core.resources.IProject project, String configName)` Return whether the given project has a configuration with the given configName.
`boolean` `supports​(org.eclipse.core.resources.IProject project)` Does this build system support this project.

### Method Detail

#### getProvider

    ICBuildConfigurationProvider getProvider​(String id)

Return the build configuration provider with the given id.

Parameters:
  `id` -
Returns:
  build configuration provider

#### hasConfiguration

    boolean hasConfiguration​(ICBuildConfigurationProvider provider,
                             org.eclipse.core.resources.IProject project,
                             String configName)
                      throws org.eclipse.core.runtime.CoreException

Return whether the given project has a configuration with the given configName.

Parameters:
  `provider` -
  `project` -
  `configName` -
Returns:
  true if project has the named config
Throws:
  `org.eclipse.core.runtime.CoreException`
Since:
  6.4

#### createBuildConfiguration

    org.eclipse.core.resources.IBuildConfiguration createBuildConfiguration​(ICBuildConfigurationProvider provider,
                                                                            org.eclipse.core.resources.IProject project,
                                                                            String configName,
                                                                            org.eclipse.core.runtime.IProgressMonitor monitor)
                                                                     throws org.eclipse.core.runtime.CoreException

Create a new build configuration to be owned by a provider.

Parameters:
  `provider` -
  `project` -
  `configName` -
  `monitor` -
Returns:
  new build configuration
Throws:
  `org.eclipse.core.runtime.CoreException`

#### getBuildConfiguration

    ICBuildConfiguration getBuildConfiguration​(org.eclipse.core.resources.IProject project,
                                               IToolChain toolChain,
                                               String launchMode,
                                               org.eclipse.core.runtime.IProgressMonitor monitor)
                                        throws org.eclipse.core.runtime.CoreException

Create a new build configuration for a given project using a given toolchain and builds for a given launch mode.

Parameters:
  `project` - project for the config
  `toolChain` - toolchain the build config will use
  `launchMode` - launch mode the buld config will build for
Returns:
  new build configuration
Throws:
  `org.eclipse.core.runtime.CoreException`
Since:
  6.1

#### getBuildConfiguration

    @Deprecated
    ICBuildConfiguration getBuildConfiguration​(org.eclipse.core.resources.IProject project,
                                               Map<String,​String> properties,
                                               String launchMode,
                                               org.eclipse.core.runtime.IProgressMonitor monitor)
                                        throws org.eclipse.core.runtime.CoreException

Deprecated.
clients really need to pick which toolchain they want a build config for. This method pretty much picks one at random.
Create a new build configuration for a given project using a toolchain with the given properties and that builds for a given launch mode.

Parameters:
  `project` - project for the config
  `properties` - properties for the toolchain to be selected
  `launchMode` - launch mode the buld config will build for
Returns:
  new build configuration
Throws:
  `org.eclipse.core.runtime.CoreException`
Since:
  6.2

#### addBuildConfiguration

    void addBuildConfiguration​(org.eclipse.core.resources.IBuildConfiguration buildConfig,
                               ICBuildConfiguration cConfig)

Called by providers to add new build configurations as they are created.

Parameters:
  `buildConfig` - platform build configuration
  `cConfig` - CDT build configuration

#### getBuildConfiguration

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

Return the CDT build configuration associated with the given Platform build configuration.

Parameters:
  `buildConfig` -
Returns:
  the matching CDT build configuration
Throws:
  `org.eclipse.core.runtime.CoreException`

#### supports

    boolean supports​(org.eclipse.core.resources.IProject project)
              throws org.eclipse.core.runtime.CoreException

Does this build system support this project. This is determined by searching the build configuration providers looking to see if any of them support this project.

Parameters:
  `project` -
Returns:
  is this project supported by this build system
Throws:
  `org.eclipse.core.runtime.CoreException`
Since:
  6.1