Package org.gradle.language.nativeplatform.tasks

## Class AbstractNativeCompileTask

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

- Direct Known Subclasses:
    `AbstractNativePCHCompileTask`, `AbstractNativeSourceCompileTask`

      @Incubating
      public abstract class AbstractNativeCompileTask
      extends DefaultTask

  Compiles native source files into object files.

- - ### 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
    --- | ---
    `AbstractNativeCompileTask​()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `compile​(IncrementalTaskInputs inputs)` |
    `protected void` | `configureSpec​(org.gradle.nativeplatform.toolchain.internal.NativeCompileSpec spec)` |
    `protected abstract org.gradle.nativeplatform.toolchain.internal.NativeCompileSpec` | `createCompileSpec​()` |
    `ListProperty<java.lang.String>` | `getCompilerArgs​()` | Additional arguments to provide to the compiler.
    `protected org.gradle.api.internal.file.FileCollectionFactory` | `getFileCollectionFactory​()` |
    `protected FileCollection` | `getHeaderDependencies​()` | The set of dependent headers.
    `ConfigurableFileCollection` | `getIncludes​()` | Returns the header directories to be used for compilation.
    `protected org.gradle.language.nativeplatform.internal.incremental.IncrementalCompilerBuilder` | `getIncrementalCompilerBuilder​()` |
    `java.util.Map<java.lang.String,java.lang.String>` | `getMacros​()` | Macros that should be defined for the compiler.
    `DirectoryProperty` | `getObjectFileDir​()` | The directory where object files will be generated.
    `protected org.gradle.internal.operations.logging.BuildOperationLoggerFactory` | `getOperationLoggerFactory​()` |
    `ConfigurableFileCollection` | `getSource​()` | Returns the source files to be compiled.
    `ConfigurableFileCollection` | `getSystemIncludes​()` | Returns the system include directories to be used for compilation.
    `Property<NativePlatform>` | `getTargetPlatform​()` | The platform being compiled for.
    `protected org.gradle.api.internal.file.TaskFileVarFactory` | `getTaskFileVarFactory​()` |
    `Property<NativeToolChain>` | `getToolChain​()` | The tool chain used for compilation.
    `void` | `includes​(java.lang.Object includeRoots)` | Add directories where the compiler should search for header files.
    `boolean` | `isDebuggable​()` | Should the compiler generate debuggable code?
    `boolean` | `isOptimized​()` | Should the compiler generate optimized code?
    `boolean` | `isPositionIndependentCode​()` | Should the compiler generate position independent code?
    `void` | `setDebuggable​(boolean debug)` | Should the compiler generate debuggable code?
    `void` | `setMacros​(java.util.Map<java.lang.String,java.lang.String> macros)` |
    `void` | `setOptimized​(boolean optimize)` | Should the compiler generate optimized code?
    `void` | `setPositionIndependentCode​(boolean positionIndependentCode)` |
    `void` | `source​(java.lang.Object sourceFiles)` | Adds a set of source files to be compiled.

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

      `appendParallelSafeAction, compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getAsDynamicObject, getConvention, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getIdentityPath, getImpliesSubProjects, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOnlyIf, getOutputs, getPath, getProject, getServices, getShouldRunAfter, getStandardOutputCapture, getState, getTaskActions, getTaskDependencies, getTaskIdentity, getTemporaryDir, getTemporaryDirFactory, getTimeout, hasProperty, hasTaskActions, injectIntoNewInstance, isEnabled, isHasCustomActions, mustRunAfter, onlyIf, onlyIf, prependParallelSafeAction, property, replaceLogger, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setImpliesSubProjects, setMustRunAfter, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, toString`

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

      `newInputDirectory, newInputFile, newOutputDirectory, newOutputFile`

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

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

- - ### Constructor Detail

    - #### AbstractNativeCompileTask

          public AbstractNativeCompileTask​()

  - ### Method Detail

    - #### getTaskFileVarFactory

          @Inject
          protected org.gradle.api.internal.file.TaskFileVarFactory getTaskFileVarFactory​()

    - #### getIncrementalCompilerBuilder

          @Inject
          protected org.gradle.language.nativeplatform.internal.incremental.IncrementalCompilerBuilder getIncrementalCompilerBuilder​()

    - #### getOperationLoggerFactory

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

    - #### getFileCollectionFactory

          @Inject
          protected org.gradle.api.internal.file.FileCollectionFactory getFileCollectionFactory​()

    - #### compile

          public void compile​(IncrementalTaskInputs inputs)

    - #### configureSpec

          protected void configureSpec​(org.gradle.nativeplatform.toolchain.internal.NativeCompileSpec spec)

    - #### createCompileSpec

          protected abstract org.gradle.nativeplatform.toolchain.internal.NativeCompileSpec createCompileSpec​()

    - #### getToolChain

          @Internal
          public Property<NativeToolChain> getToolChain​()

      The tool chain used for compilation.
      Since:
        4.7

    - #### getTargetPlatform

          public Property<NativePlatform> getTargetPlatform​()

      The platform being compiled for.
      Since:
        4.7

    - #### isPositionIndependentCode

          @Input
          public boolean isPositionIndependentCode​()

      Should the compiler generate position independent code?

    - #### setPositionIndependentCode

          public void setPositionIndependentCode​(boolean positionIndependentCode)

    - #### isDebuggable

          @Input
          public boolean isDebuggable​()

      Should the compiler generate debuggable code?
      Since:
        4.3

    - #### setDebuggable

          public void setDebuggable​(boolean debug)

      Should the compiler generate debuggable code?
      Since:
        4.3

    - #### isOptimized

          @Input
          public boolean isOptimized​()

      Should the compiler generate optimized code?
      Since:
        4.3

    - #### setOptimized

          public void setOptimized​(boolean optimize)

      Should the compiler generate optimized code?
      Since:
        4.3

    - #### getObjectFileDir

          @OutputDirectory
          public DirectoryProperty getObjectFileDir​()

      The directory where object files will be generated.
      Since:
        4.3

    - #### getIncludes

          @Internal("The paths for include directories are tracked via the includePaths property, the contents are tracked via discovered inputs")
          public ConfigurableFileCollection getIncludes​()

      Returns the header directories to be used for compilation.

    - #### includes

          public void includes​(java.lang.Object includeRoots)

      Add directories where the compiler should search for header files.

    - #### getSystemIncludes

          @Internal("The paths for include directories are tracked via the includePaths property, the contents are tracked via discovered inputs")
          public ConfigurableFileCollection getSystemIncludes​()

      Returns the system include directories to be used for compilation.
      Since:
        4.8

    - #### getSource

          @InputFiles
          @PathSensitive(RELATIVE)
          public ConfigurableFileCollection getSource​()

      Returns the source files to be compiled.

    - #### source

          public void source​(java.lang.Object sourceFiles)

      Adds a set of source files to be compiled. The provided sourceFiles object is evaluated as per `Project.files(Object...)`.

    - #### getMacros

          @Input
          public java.util.Map<java.lang.String,java.lang.String> getMacros​()

      Macros that should be defined for the compiler.

    - #### setMacros

          public void setMacros​(java.util.Map<java.lang.String,java.lang.String> macros)

    - #### getCompilerArgs

          @Input
          public ListProperty<java.lang.String> getCompilerArgs​()

      Additional arguments to provide to the compiler.
      Since:
        4.3

    - #### getHeaderDependencies

          @InputFiles
          @PathSensitive(NAME_ONLY)
          protected FileCollection getHeaderDependencies​()

      The set of dependent headers. This is used for up-to-date checks only.
      Since:
        4.3