# DependentSourceSet

API Documentation: | `DependentSourceSet`

Known Subtypes: |
`CSourceSet` | `ObjectiveCSourceSet` |
`CppSourceSet` | `ObjectiveCppSourceSet` |

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

A source set that depends on one or more `NativeDependencySet`s to be built.

### Properties

Property | Description
`libs` | Incubating The libraries that this source set requires.
`preCompiledHeader` | Incubating The pre-compiled header configured for this source set.
`source` | Incubating The source files.

### Methods

Method | Description
`lib(library)` | Incubating Adds a library that this source set requires. This method accepts the following types:

### Script blocks

No script blocks

### Property details

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

#### `String` `preCompiledHeader`

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

The pre-compiled header configured for this source set.

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

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

The source files.

### Method details

#### `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 `NativeLibrarySpec`
- A `NativeDependencySet`
- A `LanguageSourceSet`
- A `Map` containing the library selector.

The Map notation supports the following String attributes:

- project: the path to the project containing the library (optional, defaults to current project)
- library: the name of the library (required)
- linkage: the library linkage required ['shared'/'static'] (optional, defaults to 'shared')