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

Modifier and Type
Method
Description
`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 Platform Build configuration to be owned by a Core Build config 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, IToolChain toolChain, String launchMode, ILaunchTarget launchTarget, org.eclipse.core.runtime.IProgressMonitor monitor)`
Finds an existing Core Build configuration or creates a new one if one does not exist.
`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 Details

### 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 Platform Build configuration to be owned by a Core Build config provider.

Parameters:
  `provider` - The project's Core Build config provider. Must not be null.
  `project` - Project in which the Platform Build configuration is created. Must not be null.
  `configName` - The Core Build config name to be used as part of the the Platform Build configuration name. Must not be null.
  `monitor` -
Returns:
  new Platform Build configuration. Not null.
Throws:
  `org.eclipse.core.runtime.CoreException` - Reasons include the reasons given in `IProject.setDescription(org.eclipse.core.resources.IProjectDescription, IProgressMonitor)`

### getBuildConfiguration

ICBuildConfiguration getBuildConfiguration(org.eclipse.core.resources.IProject project, IToolChain toolChain, String launchMode, ILaunchTarget launchTarget, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
Finds an existing Core Build configuration or creates a new one if one does not exist. The project's ICBuildConfigurationProvider is used to attempt to get an existing configuration or create a new one.

Parameters:
  `project` - Project to associate this Core Build Configuration to. Must not be null.
  `toolChain` - Toolchain to associate with this ICBuildConfiguration. Must not be null.
  `launchMode` - Launch mode (eg "debug") to associate with this ICBuildConfiguration. Must not be null.
  `launchTarget` - Launch target to associate with this ICBuildConfiguration. Must not be null.
  `monitor` -
Returns:
  a Core Build configuration matching the supplied parameters. Not null.
Throws:
  `org.eclipse.core.runtime.CoreException` - Reasons include:
  - The project does not exist.
  - The project is not open.
  - The project's `ICBuildConfigurationProvider.getCBuildConfiguration(IBuildConfiguration, String)` fails.
  - The project's `ICBuildConfigurationProvider` is not found.
  - There is a problem accessing the toolchain.
Since:
  9.0

### 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