# Interface ComponentWithNativeRuntime

All Superinterfaces:
  `Named, SoftwareComponent`

All Known Subinterfaces:
  `ComponentWithExecutable, ComponentWithInstallation, ComponentWithLinkFile, ComponentWithLinkUsage, ComponentWithObjectFiles, ComponentWithRuntimeFile, ComponentWithRuntimeUsage, ComponentWithSharedLibrary, ComponentWithStaticLibrary, CppBinary, CppExecutable, CppSharedLibrary, CppStaticLibrary, CppTestExecutable, SwiftBinary, SwiftExecutable, SwiftSharedLibrary, SwiftStaticLibrary, SwiftXCTestBinary, SwiftXCTestBundle, SwiftXCTestExecutable`

public interface ComponentWithNativeRuntime extends SoftwareComponent
Represents a component that produces outputs that run on a native platform.

Since:
  4.5

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface Named

  `Named.Namer`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Provider<String>`
  `getBaseName()`
  Returns the base name of this component.
  `TargetMachine`
  `getTargetMachine()`
  Returns the target machine for this component.
  `NativeToolChain`
  `getToolChain()`
  Returns the tool chain for this component.
  `boolean`
  `isDebuggable()`
  Returns true if this component has debugging enabled.
  `boolean`
  `isOptimized()`
  Returns true if this component is optimized.

  ### Methods inherited from interface Named

  `getName`

- ## Method Details

  - ### getBaseName

    Provider<String> getBaseName()
    Returns the base name of this component. This is used to calculate output file names.

  - ### isDebuggable

    boolean isDebuggable()
    Returns true if this component has debugging enabled.

  - ### isOptimized

    boolean isOptimized()
    Returns true if this component is optimized.

  - ### getTargetMachine

    TargetMachine getTargetMachine()
    Returns the target machine for this component.
    Since:
      5.2

  - ### getToolChain

    NativeToolChain getToolChain()
    Returns the tool chain for this component.