# Library

API Documentation: | `Library`

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

The logical representation of an library native component.

### Properties

Property | Description
`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.
`flavors` | Incubating The set of flavors defined for this component. All components automatically have a default flavor named "default".
`headers` | Incubating The headers exported by this library.
`shared` | Incubating Converts this library to a native dependency 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 dependency that uses the static library variant.

### Property details

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

#### `FlavorContainer` `flavors` (read-only)

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

The set of flavors defined for this component. All components automatically have a default flavor named "default".

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

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

The headers exported by this library.

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

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

Converts this library to a native dependency 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.

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

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

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

### Script blocks

No script blocks

### Methods

Method | Description
`flavors(config)` | Incubating Configure the flavors for this component.
`source(source)` | Incubating Adds one or more `LanguageSourceSet`s that are used to compile this binary.

### Method details

#### `void` `flavors`(``Action`<? super `FlavorContainer`>` config)

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

Configure the flavors for this component.

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