# NativeLibrarySpec

API Documentation: | `NativeLibrarySpec`

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

A library component that is built by a gradle project.

### Properties

Property | Description
`api` | Incubating Converts this library to a native library requirement that uses the api library linkage.
`baseName` | Incubating The name that is used to construct the output file names when building this component.
`binaries` | Incubating The binaries that are built for this component. You can use this to configure the binaries for this component.
`displayName` | Incubating Returns a human-consumable display name for this component.
`shared` | Incubating Converts this library to a native library requirement that uses the shared library variant. This is the default.
`source` | Incubating The source sets that are used to build this component.
`static` | Incubating Converts this library to a native library requirement that uses the static library variant.

### Methods

Method | Description
`source(source)` | Incubating Adds one or more `LanguageSourceSet`s that are used to compile this binary.
`targetBuildTypes(platformSelectors)` | Incubating Specifies the names of one or more `BuildType`s that this component should be built for.
`targetFlavors(flavorSelectors)` | Incubating Specifies the names of one or more `Flavor`s that this component should be built for.
`targetPlatforms(platformSelectors)` | Incubating Specifies the names of one or more `Platform`s that this component should be built for.

### Script blocks

No script blocks

### Property details

#### `NativeLibraryRequirement` `api` (read-only)

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

Converts this library to a native library requirement that uses the api library linkage.

#### `String` `baseName`

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

The name that is used to construct the output file names when building this component.

#### ``DomainObjectSet`<? extends `BinarySpec`>` `binaries` (read-only)

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

The binaries that are built for this component. You can use this to configure the binaries for this component.

#### `String` `displayName` (read-only)

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

Returns a human-consumable display name for this component.

#### `NativeLibraryRequirement` `shared` (read-only)

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

Converts this library to a native library requirement that uses the shared library variant. This is the default.

#### ``DomainObjectSet`<`LanguageSourceSet`>` `source` (read-only)

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

The source sets that are used to build this component.

#### `NativeLibraryRequirement` `static` (read-only)

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

Converts this library to a native library requirement that uses the static library variant.

### Method details

#### `void` `source`(`Object` source)

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

Adds one or more `LanguageSourceSet`s that are used to compile this binary.

This method accepts the following types:

- A `FunctionalSourceSet`
- A `LanguageSourceSet`
- A Collection of `LanguageSourceSet`s

#### `void` `targetBuildTypes`(``String`...` platformSelectors)

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

Specifies the names of one or more `BuildType`s that this component should be built for.

#### `void` `targetFlavors`(``String`...` flavorSelectors)

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

Specifies the names of one or more `Flavor`s that this component should be built for.

#### `void` `targetPlatforms`(``String`...` platformSelectors)

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

Specifies the names of one or more `Platform`s that this component should be built for.