# Interface NativeBinarySpec

All Superinterfaces:
  `Binary, BinarySpec, Buildable, BuildableComponentSpec, CheckableComponentSpec, ComponentSpec, ModelElement, Named`

All Known Subinterfaces:
  `CUnitTestSuiteBinarySpec, GoogleTestTestSuiteBinarySpec, NativeExecutableBinarySpec, NativeLibraryBinarySpec, NativeTestSuiteBinarySpec, SharedLibraryBinarySpec, StaticLibraryBinarySpec`

@Incubating public interface NativeBinarySpec extends BinarySpec
Represents a binary artifact that is the result of building a native component.

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface Named

  `Named.Namer`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Tool`
  `getAssembler()`
  The configuration of the assembler used when compiling assembly sources this binary.
  `BuildType`
  `getBuildType()`
  Returns the `BuildType` used to construct this binary.
  `PreprocessingTool`
  `getcCompiler()`
  The configuration of the C compiler used when compiling C sources for this binary.
  `NativeComponentSpec`
  `getComponent()`
  The component that this binary was built from.
  `PreprocessingTool`
  `getCppCompiler()`
  The configuration of the C++ compiler used when compiling C++ sources for this binary.
  `Flavor`
  `getFlavor()`
  The `Flavor` that this binary was built with.
  `Collection<NativeDependencySet>`
  `getLibs()`
  The libraries that should be linked into this binary.
  `Tool`
  `getLinker()`
  The configuration of the linker used when linking this binary.
  `PreprocessingTool`
  `getObjcCompiler()`
  The configuration of the Objective-C compiler used when compiling Objective-C sources for this binary.
  `PreprocessingTool`
  `getObjcppCompiler()`
  The configuration of the Objective-C++ compiler used when compiling Objective-C++ sources for this binary.
  `PreprocessingTool`
  `getRcCompiler()`
  The configuration of the Resource compiler used when compiling resources for this binary.
  `Tool`
  `getStaticLibArchiver()`
  The configuration of the static library archiver used when creating this binary.
  `NativePlatform`
  `getTargetPlatform()`
  Returns the `NativePlatform` that this binary is targeted to run on.
  `NativeToolChain`
  `getToolChain()`
  Returns the `NativeToolChain` that will be used to build this binary.
  `void`
  `lib(Object library)`
  Adds a library as input to this binary.

  ### Methods inherited from interface Binary

  `getDisplayName`

  ### Methods inherited from interface BinarySpec

  `getInputs, getSources, getTasks, isBuildable`

  ### Methods inherited from interface Buildable

  `getBuildDependencies`

  ### Methods inherited from interface BuildableComponentSpec

  `builtBy, getBuildTask, hasBuildDependencies, setBuildTask`

  ### Methods inherited from interface CheckableComponentSpec

  `checkedBy, getCheckTask, setCheckTask`

  ### Methods inherited from interface ComponentSpec

  `getProjectPath`

  ### Methods inherited from interface ModelElement

  `getDisplayName, getName`

- ## Method Details

  - ### getComponent

    NativeComponentSpec getComponent()
    The component that this binary was built from.

  - ### getFlavor

    Flavor getFlavor()
    The `Flavor` that this binary was built with.

  - ### getTargetPlatform

    NativePlatform getTargetPlatform()
    Returns the `NativePlatform` that this binary is targeted to run on.

  - ### getBuildType

    BuildType getBuildType()
    Returns the `BuildType` used to construct this binary.

  - ### getLibs

    Collection<NativeDependencySet> getLibs()
    The libraries that should be linked into this binary.

  - ### lib

    void lib(Object library)
    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')

  - ### getToolChain

    NativeToolChain getToolChain()
    Returns the `NativeToolChain` that will be used to build this binary.

  - ### getLinker

    Tool getLinker()
    The configuration of the linker used when linking this binary. Valid for `SharedLibraryBinarySpec` and `NativeExecutableBinarySpec`.

  - ### getStaticLibArchiver

    Tool getStaticLibArchiver()
    The configuration of the static library archiver used when creating this binary. Valid for `StaticLibraryBinarySpec`.

  - ### getAssembler

    Tool getAssembler()
    The configuration of the assembler used when compiling assembly sources this binary. Valid for `SharedLibraryBinarySpec`, `StaticLibraryBinarySpec` and `NativeExecutableBinarySpec` when the 'assembler' plugin is applied.

  - ### getcCompiler

    PreprocessingTool getcCompiler()
    The configuration of the C compiler used when compiling C sources for this binary. Valid for `SharedLibraryBinarySpec`, `StaticLibraryBinarySpec` and `NativeExecutableBinarySpec` when the 'c' plugin is applied.

  - ### getCppCompiler

    PreprocessingTool getCppCompiler()
    The configuration of the C++ compiler used when compiling C++ sources for this binary. Valid for `SharedLibraryBinarySpec`, `StaticLibraryBinarySpec` and `NativeExecutableBinarySpec` when the 'cpp' plugin is applied.

  - ### getObjcCompiler

    PreprocessingTool getObjcCompiler()
    The configuration of the Objective-C compiler used when compiling Objective-C sources for this binary. Valid for `SharedLibraryBinarySpec`, `StaticLibraryBinarySpec` and `NativeExecutableBinarySpec` when the 'objective-c' plugin is applied.

  - ### getObjcppCompiler

    PreprocessingTool getObjcppCompiler()
    The configuration of the Objective-C++ compiler used when compiling Objective-C++ sources for this binary. Valid for `SharedLibraryBinarySpec`, `StaticLibraryBinarySpec` and `NativeExecutableBinarySpec` when the 'objective-cpp' plugin is applied.

  - ### getRcCompiler

    PreprocessingTool getRcCompiler()
    The configuration of the Resource compiler used when compiling resources for this binary. Valid for `SharedLibraryBinarySpec`, `StaticLibraryBinarySpec` and `NativeExecutableBinarySpec` when the 'windows-resources' plugin is applied.