# Interface ComponentWithInstallation

All Superinterfaces:
  `ComponentWithNativeRuntime, Named, SoftwareComponent`

All Known Subinterfaces:
  `CppExecutable, CppTestExecutable, SwiftExecutable, SwiftXCTestExecutable`

public interface ComponentWithInstallation extends ComponentWithNativeRuntime
Represents a native component that produces an application installation.

Since:
  4.5

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface Named

  `Named.Namer`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Provider<Directory>`
  `getInstallDirectory()`
  Returns the installation directory.
  `Provider<? extends InstallExecutable>`
  `getInstallTask()`
  Returns the install task.
  `FileCollection`
  `getRuntimeLibraries()`
  Returns the runtime libraries required for the installation.

  ### Methods inherited from interface ComponentWithNativeRuntime

  `getBaseName, getTargetMachine, getToolChain, isDebuggable, isOptimized`

  ### Methods inherited from interface Named

  `getName`

- ## Method Details

  - ### getRuntimeLibraries

    FileCollection getRuntimeLibraries()
    Returns the runtime libraries required for the installation. Includes the runtime libraries of the component's dependencies.
    Since:
      4.5

  - ### getInstallDirectory

    Provider<Directory> getInstallDirectory()
    Returns the installation directory.
    Since:
      4.5

  - ### getInstallTask

    Provider<? extends InstallExecutable> getInstallTask()
    Returns the install task.
    Since:
      4.5