# Class CreateStaticLibrary

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

All Implemented Interfaces:
  `Comparable<Task>, org.gradle.api.internal.DynamicObjectAware, org.gradle.api.internal.TaskInternal, Named, ExtensionAware, Task, ObjectFilesToBinary, Configurable<Task>`

@DisableCachingByDefault(because="Not made cacheable, yet") public abstract class CreateStaticLibrary extends DefaultTask implements ObjectFilesToBinary
Assembles a static library from object files.

Since:
  2.2

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface Named

  `Named.Namer`

- ## Field Summary

  ### Fields inherited from interface Task

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

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CreateStaticLibrary()`
  Creates a new `CreateStaticLibrary`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `RegularFileProperty`
  `getBinaryFile()`
  The file where the linked binary will be located.
  `abstract org.gradle.internal.operations.logging.BuildOperationLoggerFactory`
  `getOperationLoggerFactory()`
  `abstract RegularFileProperty`
  `getOutputFile()`
  The file where the output binary will be located.
  `FileCollection`
  `getSource()`
  The source object files to be passed to the archiver.
  `abstract ListProperty<String>`
  `getStaticLibArgs()`
  Additional arguments passed to the archiver.
  `abstract Property<NativePlatform>`
  `getTargetPlatform()`
  The platform being linked for.
  `abstract Property<NativeToolChain>`
  `getToolChain()`
  The tool chain used for linking.
  `protected void`
  `link()`
  Link.
  `void`
  `source(Object source)`
  Adds a set of object files to be linked.

  ### Methods inherited from class 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, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService`

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

  `acceptServiceReferences, appendParallelSafeAction, doNotTrackState, doNotTrackStateIf, getAsDynamicObject, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getLoggingManager, getOnlyIf, getReasonNotToTrackState, getReasonsNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, restoreOnlyIf, restoreTaskActions, service, setImpliesSubProjects`

  ### Methods inherited from class Object

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

  ### Methods inherited from interface Comparable

  `compareTo`

  ### Methods inherited from interface ExtensionAware

  `getExtensions`

  ### Methods inherited from interface Task

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

- ## Constructor Details

  - ### CreateStaticLibrary

    public CreateStaticLibrary()
    Creates a new `CreateStaticLibrary`.
    Since:
      2.2

- ## Method Details

  - ### getSource

    @InputFiles @SkipWhenEmpty @IgnoreEmptyDirectories @PathSensitive(RELATIVE) public FileCollection getSource()
    The source object files to be passed to the archiver.
    Since:
      2.2

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

  - ### getOperationLoggerFactory

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

  - ### link

    protected void link()
    Link.
    Since:
      2.2

  - ### getToolChain

    @Internal public abstract Property<NativeToolChain> getToolChain()
    The tool chain used for linking.
    Since:
      4.7

  - ### getTargetPlatform

    public abstract Property<NativePlatform> getTargetPlatform()
    The platform being linked for.
    Since:
      4.7

  - ### getOutputFile

    @OutputFile public abstract RegularFileProperty getOutputFile()
    The file where the output binary will be located.
    Since:
      2.2

  - ### getBinaryFile

    @Internal public RegularFileProperty getBinaryFile()
    The file where the linked binary will be located.
    Since:
      4.5

  - ### getStaticLibArgs

    @Input public abstract ListProperty<String> getStaticLibArgs()
    Additional arguments passed to the archiver.
    Since:
      4.7