org.gradle.language.cpp

## Interface CppBinary

- All Superinterfaces:
    ComponentWithNativeRuntime, ComponentWithObjectFiles, Named, SoftwareComponent
  All Known Subinterfaces:
    CppExecutable, CppSharedLibrary, CppStaticLibrary, CppTestExecutable

      @Incubating
      public interface CppBinary
      extends ComponentWithObjectFiles

  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 org.gradle.api.Named

      `Named.Namer`

  - ### Field Summary

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

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and 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 org.gradle.language.nativeplatform.ComponentWithObjectFiles

      `getObjects`

    - ### Methods inherited from interface org.gradle.language.nativeplatform.ComponentWithNativeRuntime

      `getBaseName, getToolChain, isDebuggable, isOptimized`

    - ### Methods inherited from interface org.gradle.api.Named

      `getName`

- - ### Field Detail

    - #### DEBUGGABLE_ATTRIBUTE

          static final Attribute<Boolean> DEBUGGABLE_ATTRIBUTE

      The dependency resolution attribute use to indicate whether a binary is debuggable or not.

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

    - #### getCppSource

          FileCollection getCppSource()

      Returns the C++ source files of this binary.

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

    - #### getLinkLibraries

          FileCollection getLinkLibraries()

      Returns the link libraries to use to link this binary. Includes the link libraries of the component's dependencies.

    - #### getRuntimeLibraries

          FileCollection getRuntimeLibraries()

      Returns the runtime libraries required by this binary. Includes the runtime libraries of the component's dependencies.

    - #### getTargetPlatform

          CppPlatform getTargetPlatform()

      Returns the target platform for this component.
      Specified by:
        `getTargetPlatform` in interface `ComponentWithNativeRuntime`
      Since:
        4.5

    - #### getCompileTask

          Provider<CppCompile> getCompileTask()

      Returns the compile task for this binary.
      Since:
        4.5