# Interface CppBinary

All Superinterfaces:
  `BuildableComponent, ComponentWithDependencies, ComponentWithNativeRuntime, ComponentWithObjectFiles, Named, SoftwareComponent`

All Known Subinterfaces:
  `CppExecutable, CppSharedLibrary, CppStaticLibrary, CppTestExecutable`

public interface CppBinary extends ComponentWithObjectFiles, ComponentWithDependencies, BuildableComponent
A binary built from C++ source and linked from the resulting object files.

Since:
  4.2

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface Named

  `Named.Namer`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final Attribute<Boolean>`
  `DEBUGGABLE_ATTRIBUTE`
  The dependency resolution attribute use to indicate whether a binary is debuggable or not.
  `static final Attribute<Linkage>`
  `LINKAGE_ATTRIBUTE`
  The dependency resolution attribute use to indicate which linkage a binary uses.
  `static final Attribute<Boolean>`
  `OPTIMIZED_ATTRIBUTE`
  The dependency resolution attribute use to indicate whether a binary is optimized or not.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `FileCollection`
  `getCompileIncludePath()`
  Returns the header directories to use to compile this binary.
  `Provider<CppCompile>`
  `getCompileTask()`
  Returns the compile task for this binary.
  `FileCollection`
  `getCppSource()`
  Returns the C++ source files of this binary.
  `FileCollection`
  `getLinkLibraries()`
  Returns the link libraries to use to link this binary.
  `FileCollection`
  `getRuntimeLibraries()`
  Returns the runtime libraries required by this binary.
  `CppPlatform`
  `getTargetPlatform()`
  Returns the target platform for this component.

  ### Methods inherited from interface ComponentWithDependencies

  `getDependencies`

  ### Methods inherited from interface ComponentWithNativeRuntime

  `getBaseName, getTargetMachine, getToolChain, isDebuggable, isOptimized`

  ### Methods inherited from interface ComponentWithObjectFiles

  `getObjects`

  ### Methods inherited from interface Named

  `getName`

- ## Field Details

  - ### DEBUGGABLE_ATTRIBUTE

    static final Attribute<Boolean> DEBUGGABLE_ATTRIBUTE
    The dependency resolution attribute use to indicate whether a binary is debuggable or not.
    Since:
      4.2

  - ### OPTIMIZED_ATTRIBUTE

    static final Attribute<Boolean> OPTIMIZED_ATTRIBUTE
    The dependency resolution attribute use to indicate whether a binary is optimized or not.
    Since:
      4.5

  - ### LINKAGE_ATTRIBUTE

    static final Attribute<Linkage> LINKAGE_ATTRIBUTE
    The dependency resolution attribute use to indicate which linkage a binary uses.
    Since:
      4.5

- ## Method Details

  - ### getCppSource

    FileCollection getCppSource()
    Returns the C++ source files of this binary.
    Since:
      4.2

  - ### getCompileIncludePath

    FileCollection getCompileIncludePath()
    Returns the header directories to use to compile this binary. Includes the header directories of this binary plus those of its dependencies.
    Since:
      4.2

  - ### getLinkLibraries

    FileCollection getLinkLibraries()
    Returns the link libraries to use to link this binary. Includes the link libraries of the component's dependencies.
    Since:
      4.2

  - ### getRuntimeLibraries

    FileCollection getRuntimeLibraries()
    Returns the runtime libraries required by this binary. Includes the runtime libraries of the component's dependencies.
    Since:
      4.2

  - ### getTargetPlatform

    CppPlatform getTargetPlatform()
    Returns the target platform for this component.
    Since:
      4.5

  - ### getCompileTask

    Provider<CppCompile> getCompileTask()
    Returns the compile task for this binary.
    Since:
      4.5