# CppSourceSet

API Documentation: | `CppSourceSet`

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

A set of C++ source files.

A C++ source set contains a set of source files, together with an optional set of exported header files.

    apply plugin: "cpp"

    sources {
        main {
            // Configure an existing CppSourceSet
            cpp {
                source {
                    srcDirs "src/main/cpp", "src/shared/c++"
                    include "**/*.cpp"
                }
                exportedHeaders {
                    srcDirs "src/main/include", "src/shared/include"
                }
            }
        }
    }

### Properties

Property | Description
`exportedHeaders` | Incubating The headers as a directory set.
`libs` | Incubating The libraries that this source set requires.
`source` | Incubating The source files.

### Property details

#### `SourceDirectorySet` `exportedHeaders` (read-only)

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

The headers as a directory set.

#### ``Collection`<?>` `libs` (read-only)

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

The libraries that this source set requires.

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

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

The source files.

### Script blocks

No script blocks

### Methods

Method | Description
`dependency(dep)` | Incubating Add a dependency to this source set.
`exportedHeaders(config)` | Incubating Configure the exported header directories.
`lib(library)` | Incubating Adds a library that this source set requires. This method accepts the following types:
`source(config)` | Incubating Configure the sources

### Method details

#### `void` `dependency`(``Map`<?, ?>` dep)

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

Add a dependency to this source set.

#### `void` `exportedHeaders`(``Action`<? super `SourceDirectorySet`>` config)

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

Configure the exported header directories.

#### `void` `lib`(`Object` library)

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

Adds a library that this source set requires. This method accepts the following types:

- A `Library`
- A `LibraryBinary`
- A `NativeDependencySet`

#### `void` `source`(``Action`<? super `SourceDirectorySet`>` config)

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

Configure the sources