CppComponent - Gradle DSL Version 5.6.1

# CppComponent

API Documentation: | `CppComponent`

Known Subtypes: |
`ProductionCppComponent`
`CppTestSuite`

Note: This class is incubating and may change in a future version of Gradle.

Configuration for a C++ component, such as a library or executable, defining the source files and private header directories that make up the component. Private headers are those that are visible only to the source files of the component.

A C++ component is composed of some C++ source files that are compiled and then linked into some binary.

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

### Properties

Property | Description
`baseName` | Incubating Specifies the base name for this component. This name is used to calculate various output file names. The default value is calculated from the project name.
`binaries` | Incubating The binaries of this component.
`privateHeaders` | Incubating Defines the private header file directories of this library.
`source` | Incubating Defines the source files or directories of this component. You can add files or directories to this collection. When a directory is added, all source files are included for compilation.
`targetMachines` | Incubating Specifies the target machines this component should be built for. The "machines" extension property (see `TargetMachineFactory`) can be used to construct common operating system and architecture combinations.

### Methods

Method | Description
`privateHeaders(action)` | Incubating Configures the private header directories for this component.
`source(action)` | Incubating Configures the source files or directories for this component.

### Script blocks

No script blocks

### Property details

#### ``Property`<`String`>` `baseName`

Note: This property is incubating and may change in a future version of Gradle.

Specifies the base name for this component. This name is used to calculate various output file names. The default value is calculated from the project name.

#### ``BinaryCollection`<? extends `SoftwareComponent`>` `binaries` (read-only)

Note: This property is incubating and may change in a future version of Gradle.

The binaries of this component.

#### `ConfigurableFileCollection` `privateHeaders` (read-only)

Note: This property is incubating and may change in a future version of Gradle.

Defines the private header file directories of this library.

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

#### `ConfigurableFileCollection` `source` (read-only)

Note: This property is incubating and may change in a future version of Gradle.

Defines the source files or directories of this component. You can add files or directories to this collection. When a directory is added, all source files are included for compilation.

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

#### ``SetProperty`<`TargetMachine`>` `targetMachines`

Note: This property is incubating and may change in a future version of Gradle.

Specifies the target machines this component should be built for. The "machines" extension property (see `TargetMachineFactory`) can be used to construct common operating system and architecture combinations.

For example:

    targetMachines = [machines.linux.x86_64, machines.windows.x86_64]

### Method details

#### `void` `privateHeaders`(``Action`<? super `ConfigurableFileCollection`>` action)

Note: This method is incubating and may change in a future version of Gradle.

Configures the private header directories for this component.

#### `void` `source`(``Action`<? super `ConfigurableFileCollection`>` action)

Note: This method is incubating and may change in a future version of Gradle.

Configures the source files or directories for this component.