# NativeBinarySpec

API Documentation: | `NativeBinarySpec`

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

Represents a binary artifact that is the result of building a native component.

### Properties

Property | Description
`buildable` | Incubating Can this binary be built in the current environment?
`component` | Incubating The component that this binary was built from.
`libs` | Incubating The libraries that should be linked into this binary.
`linker` | Incubating The settings used for linking this binary.
`source` | Incubating The source sets used to compile this binary.
`staticLibArchiver` | Incubating The static archiver settings used for creating this binary.
`tasks` | Incubating The set of tasks associated with this binary.
`toolChain` | Incubating The `ToolChain` that will be used to build this binary.

### Methods

Method | Description
`lib(library)` | Incubating Adds a library as input to this binary.
`source(source)` | Incubating Adds one or more `LanguageSourceSet`s that are used to compile this binary.

### Script blocks

No script blocks

### Property details

#### `boolean` `buildable` (read-only)

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

Can this binary be built in the current environment?

#### `NativeComponentSpec` `component` (read-only)

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

The component that this binary was built from.

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

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

The libraries that should be linked into this binary.

#### `Tool` `linker` (read-only)

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

The settings used for linking this binary.

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

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

The source sets used to compile this binary.

#### `Tool` `staticLibArchiver` (read-only)

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

The static archiver settings used for creating this binary.

#### `NativeBinaryTasks` `tasks` (read-only)

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

The set of tasks associated with this binary.

#### `ToolChain` `toolChain` (read-only)

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

The `ToolChain` that will be used to build this binary.

### Method details

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

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

Adds a library as input to this binary.

This method accepts the following types:

- A `NativeLibrarySpec`
- A `NativeDependencySet`
- 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')

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