# Interface CppLibrary

All Superinterfaces:
  `CppComponent, Named, SoftwareComponent`

@Incubating public interface CppLibrary extends CppComponent
Configuration for a C++ library, defining the source files and header directories that make up the library plus other settings.

An instance of this type is added as a project extension by the C++ library plugin.

Since:
  4.2

## Nested Class Summary

### Nested classes/interfaces inherited from interface Named

`Named.Namer`

## Method Summary

Modifier and Type
Method
Description
`Configuration`
`getApiDependencies()`
Returns the API dependencies of this library.
`CppSharedLibrary`
`getDebugSharedLibrary()`
Returns the debug shared library for this library.
`CppSharedLibrary`
`getDevelopmentBinary()`
Returns the binary of the component to use as the default for development.
`FileCollection`
`getPublicHeaderDirs()`
Returns the public header file directories of this component, as defined in `getPublicHeaders()`.
`FileTree`
`getPublicHeaderFiles()`
Returns public header files of this component.
`ConfigurableFileCollection`
`getPublicHeaders()`
Defines the public header file directories of this library.
`CppSharedLibrary`
`getReleaseSharedLibrary()`
Returns the release shared library for this library.
`void`
`publicHeaders(Action<? super ConfigurableFileCollection> action)`
Configures the public header directories for this component.

### Methods inherited from interface CppComponent

`getBaseName, getCppSource, getHeaderFiles, getImplementationDependencies, getPrivateHeaderDirs, getPrivateHeaders, getSource, privateHeaders, source`

### Methods inherited from interface Named

`getName`

## Method Details

### getPublicHeaders

ConfigurableFileCollection getPublicHeaders()
Defines the public header file directories of this library.

When this collection is empty, the directory `src/main/public` is used by default.

### publicHeaders

void publicHeaders(Action<? super ConfigurableFileCollection> action)
Configures the public header directories for this component.

### getPublicHeaderDirs

FileCollection getPublicHeaderDirs()
Returns the public header file directories of this component, as defined in `getPublicHeaders()`.

### getPublicHeaderFiles

FileTree getPublicHeaderFiles()
Returns public header files of this component.

Since:
  4.3

### getApiDependencies

Configuration getApiDependencies()
Returns the API dependencies of this library.

### getDevelopmentBinary

CppSharedLibrary getDevelopmentBinary()
Returns the binary of the component to use as the default for development.

Specified by:
  `getDevelopmentBinary` in interface `CppComponent`

### getDebugSharedLibrary

CppSharedLibrary getDebugSharedLibrary()
Returns the debug shared library for this library.

### getReleaseSharedLibrary

CppSharedLibrary getReleaseSharedLibrary()
Returns the release shared library for this library.