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

- All Implemented Interfaces:
    Comparable<Task>, org.gradle.api.internal.DynamicObjectAware, org.gradle.api.internal.TaskInternal, ExtensionAware, Task, org.gradle.util.Configurable<Task>
  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_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractNativeCompileTask()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `compile(IncrementalTaskInputs inputs)`
    `protected void` | `configureSpec(org.gradle.nativeplatform.toolchain.internal.NativeCompileSpec spec)`
    `protected abstract org.gradle.nativeplatform.toolchain.internal.NativeCompileSpec` | `createCompileSpec()`
    `List<String>` | `getCompilerArgs()` Additional arguments to provide to the compiler.
    `FileCollection` | `getIncludes()` Returns the header directories to be used for compilation.
    `org.gradle.language.nativeplatform.internal.incremental.IncrementalCompilerBuilder` | `getIncrementalCompilerBuilder()`
    `Map<String,String>` | `getMacros()` Macros that should be defined for the compiler.
    `File` | `getObjectFileDir()` The directory where object files will be generated.
    `org.gradle.internal.operations.logging.BuildOperationLoggerFactory` | `getOperationLoggerFactory()`
    `FileCollection` | `getSource()` Returns the source files to be compiled.
    `NativePlatform` | `getTargetPlatform()` The platform being targeted.
    `NativeToolChain` | `getToolChain()` The tool chain used for compilation.
    `void` | `includes(Object includeRoots)` Add directories where the compiler should search for header files.
    `boolean` | `isPositionIndependentCode()` Should the compiler generate position independent code?
    `void` | `setCompilerArgs(List<String> compilerArgs)`
    `void` | `setMacros(Map<String,String> macros)`
    `void` | `setObjectFileDir(File objectFileDir)`
    `void` | `setPositionIndependentCode(boolean positionIndependentCode)`
    `void` | `setTargetPlatform(NativePlatform targetPlatform)`
    `void` | `setToolChain(NativeToolChain toolChain)`
    `void` | `source(Object sourceFiles)` Adds a set of source files to be compiled.

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

      `addValidator, appendParallelSafeAction, compareTo, configure, deleteAllActions, dependsOn, dependsOnTaskDidWork, doFirst, doFirst, doLast, doLast, execute, finalizedBy, getActions, getAnt, getAsDynamicObject, getConvention, getDependsOn, getDescription, getDidWork, getEnabled, getExecuter, getExtensions, getFinalizedBy, getGroup, getImpliesSubProjects, getInputs, getLogger, getLogging, getMustRunAfter, getName, getOnlyIf, getOutputs, getPath, getProject, getServices, getShouldRunAfter, getStandardOutputCapture, getState, getTaskActions, getTaskDependencies, getTemporaryDir, getTemporaryDirFactory, getValidators, hasProperty, injectIntoNewInstance, isEnabled, isHasCustomActions, leftShift, mustRunAfter, onlyIf, onlyIf, prependParallelSafeAction, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setExecuter, setFinalizedBy, setGroup, setImpliesSubProjects, setMustRunAfter, setName, setOnlyIf, setOnlyIf, setProject, setProperty, setShouldRunAfter, shouldRunAfter, toString`

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

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

- - ### Constructor Detail

    - #### AbstractNativeCompileTask

          public AbstractNativeCompileTask()

  - ### Method Detail

    - #### getIncrementalCompilerBuilder

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

    - #### getOperationLoggerFactory

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

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

          public NativeToolChain getToolChain()

      The tool chain used for compilation.

    - #### setToolChain

          public void setToolChain(NativeToolChain toolChain)

    - #### getTargetPlatform

          public NativePlatform getTargetPlatform()

      The platform being targeted.

    - #### setTargetPlatform

          public void setTargetPlatform(NativePlatform targetPlatform)

    - #### isPositionIndependentCode

          @Input
          public boolean isPositionIndependentCode()

      Should the compiler generate position independent code?

    - #### setPositionIndependentCode

          public void setPositionIndependentCode(boolean positionIndependentCode)

    - #### getObjectFileDir

          @OutputDirectory
          public File getObjectFileDir()

      The directory where object files will be generated.

    - #### setObjectFileDir

          public void setObjectFileDir(File objectFileDir)

    - #### getIncludes

          @InputFiles
          public FileCollection getIncludes()

      Returns the header directories to be used for compilation.

    - #### includes

          public void includes(Object includeRoots)

      Add directories where the compiler should search for header files.

    - #### getSource

          @InputFiles
          public FileCollection getSource()

      Returns the source files to be compiled.

    - #### source

          public void source(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 Map<String,String> getMacros()

      Macros that should be defined for the compiler.

    - #### setMacros

          public void setMacros(Map<String,String> macros)

    - #### getCompilerArgs

          @Input
          public List<String> getCompilerArgs()

      Additional arguments to provide to the compiler.

    - #### setCompilerArgs

          public void setCompilerArgs(List<String> compilerArgs)