Package org.gradle.nativeplatform.tasks

## Class AbstractLinkTask

- java.lang.Object
- - org.gradle.api.internal.AbstractTask
  - - org.gradle.api.DefaultTask
    - - org.gradle.nativeplatform.tasks.AbstractLinkTask

- All Implemented Interfaces:
    `Comparable<Task>`, `org.gradle.api.internal.DynamicObjectAware`, `org.gradle.api.internal.TaskInternal`, `ExtensionAware`, `Task`, `ObjectFilesToBinary`, `Configurable<Task>`
  Direct Known Subclasses:
    `LinkExecutable`, `LinkMachOBundle`, `LinkSharedLibrary`

      @DisableCachingByDefault(because="Abstract super-class, not to be instantiated directly")
      public abstract class AbstractLinkTask
      extends DefaultTask
      implements ObjectFilesToBinary

  Base task for linking a native binary from object files and libraries.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.gradle.api.Task

      `Task.Namer`

  - ### Field Summary

    - ### Fields inherited from interface org.gradle.api.Task

      `TASK_ACTION, TASK_CONSTRUCTOR_ARGS, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AbstractLinkTask()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected abstract org.gradle.nativeplatform.internal.LinkerSpec` | `createLinkerSpec()` |
    `protected CompilerVersion` | `getCompilerVersion()` | The linker used, including the type and the version.
    `Property<Boolean>` | `getDebuggable()` | Create a debuggable binary?
    `protected org.gradle.internal.file.Deleter` | `getDeleter()` |
    `DirectoryProperty` | `getDestinationDirectory()` | Include the destination directory as an output, to pick up auxiliary files produced alongside the main output file
    `ConfigurableFileCollection` | `getLibs()` | The library files to be passed to the linker.
    `RegularFileProperty` | `getLinkedFile()` | The file where the linked binary will be located.
    `ListProperty<String>` | `getLinkerArgs()` | Additional arguments passed to the linker.
    `protected org.gradle.internal.operations.logging.BuildOperationLoggerFactory` | `getOperationLoggerFactory()` |
    `ConfigurableFileCollection` | `getSource()` | The source object files to be passed to the linker.
    `Property<NativePlatform>` | `getTargetPlatform()` | The platform being linked for.
    `Property<NativeToolChain>` | `getToolChain()` | The tool chain used for linking.
    `boolean` | `isDebuggable()` | Create a debuggable binary?
    `void` | `lib​(Object libs)` | Adds a set of library files to be linked.
    `protected void` | `link()` |
    `void` | `setLibs​(FileCollection libs)` |
    `void` | `setSource​(FileCollection source)` |
    `void` | `source​(Object source)` | Adds a set of object files to be linked.

    - ### Methods inherited from class org.gradle.api.DefaultTask

      `compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService`

    - ### Methods inherited from class org.gradle.api.internal.AbstractTask

      `appendParallelSafeAction, doNotTrackState, getAsDynamicObject, getConvention, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, setImpliesSubProjects`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface java.lang.Comparable

      `compareTo`

    - ### Methods inherited from interface org.gradle.api.plugins.ExtensionAware

      `getExtensions`

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

      `configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, doNotTrackState, finalizedBy, getActions, getAnt, getConvention, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getFinalizedBy, getGroup, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getPath, getProject, getShouldRunAfter, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, notCompatibleWithConfigurationCache, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService`

- - ### Constructor Detail

    - #### AbstractLinkTask

          public AbstractLinkTask()

  - ### Method Detail

    - #### getToolChain

          @Internal
          public Property<NativeToolChain> getToolChain()

      The tool chain used for linking.
      Since:
        4.7

    - #### getTargetPlatform

          public Property<NativePlatform> getTargetPlatform()

      The platform being linked for.
      Since:
        4.7

    - #### getDestinationDirectory

          @OutputDirectory
          public DirectoryProperty getDestinationDirectory()

      Include the destination directory as an output, to pick up auxiliary files produced alongside the main output file
      Since:
        4.7

    - #### getLinkedFile

          @OutputFile
          public RegularFileProperty getLinkedFile()

      The file where the linked binary will be located.
      Since:
        4.7

    - #### getLinkerArgs

          @Input
          public ListProperty<String> getLinkerArgs()

      Additional arguments passed to the linker.
      Since:
        4.3

    - #### isDebuggable

          @Internal
          public boolean isDebuggable()

      Create a debuggable binary?
      Since:
        4.7

    - #### getDebuggable

          @Input
          public Property<Boolean> getDebuggable()

      Create a debuggable binary?
      Since:
        4.7

    - #### getSource

          @InputFiles
          @SkipWhenEmpty
          @IgnoreEmptyDirectories
          @PathSensitive(RELATIVE)
          public ConfigurableFileCollection getSource()

      The source object files to be passed to the linker.

    - #### setSource

          public void setSource​(FileCollection source)

    - #### getLibs

          @PathSensitive(RELATIVE)
          @InputFiles
          public ConfigurableFileCollection getLibs()

      The library files to be passed to the linker.

    - #### setLibs

          public void setLibs​(FileCollection libs)

    - #### source

          public void source​(Object source)

      Adds a set of object files to be linked. The provided source object is evaluated as per `Project.files(Object...)`.
      Specified by:
        `source` in interface `ObjectFilesToBinary`

    - #### lib

          public void lib​(Object libs)

      Adds a set of library files to be linked. The provided libs object is evaluated as per `Project.files(Object...)`.

    - #### getCompilerVersion

          protected CompilerVersion getCompilerVersion()

      The linker used, including the type and the version.
      Since:
        4.7

    - #### getOperationLoggerFactory

          @Inject
          protected org.gradle.internal.operations.logging.BuildOperationLoggerFactory getOperationLoggerFactory()

    - #### getDeleter

          @Inject
          protected org.gradle.internal.file.Deleter getDeleter()

    - #### link

          protected void link()

    - #### createLinkerSpec

          protected abstract org.gradle.nativeplatform.internal.LinkerSpec createLinkerSpec()