# Class AbstractNativeSourceCompileTask

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

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

Direct Known Subclasses:
  `CCompile, CppCompile, ObjectiveCCompile, ObjectiveCppCompile`

@DisableCachingByDefault(because="Abstract super-class, not to be instantiated directly") public abstract class AbstractNativeSourceCompileTask extends AbstractNativeCompileTask
Compiles native source files into object files.

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `configureSpec(org.gradle.nativeplatform.toolchain.internal.NativeCompileSpec spec)`
  `protected @Nullable CompilerVersion`
  `getCompilerVersion()`
  The compiler used, including the type and the version.
  `@Nullable org.gradle.nativeplatform.toolchain.internal.PreCompiledHeader`
  `getPreCompiledHeader()`
  Returns the pre-compiled header to be used during compilation
  `void`
  `setPreCompiledHeader(@Nullable org.gradle.nativeplatform.toolchain.internal.PreCompiledHeader preCompiledHeader)`

  ### Methods inherited from class AbstractNativeCompileTask

  `compile, createCompileSpec, getCompilerArgs, getFileCollectionFactory, getHeaderDependencies, getIncludes, getIncrementalCompilerBuilder, getMacros, getObjectFileDir, getOperationLoggerFactory, getSource, getSystemIncludes, getTargetPlatform, getTaskFileVarFactory, getToolChain, includes, isDebuggable, isOptimized, isPositionIndependentCode, setDebuggable, setMacros, setOptimized, setPositionIndependentCode, source`

  ### 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, getOnlyIf, getReasonNotToTrackState, getReasonsNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, restoreOnlyIf, restoreTaskActions, setImpliesSubProjects`

  ### Methods inherited from class Object

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

  ### Methods inherited from interface Task

  `doNotTrackState, notCompatibleWithConfigurationCache`

- ## Constructor Details

  - ### AbstractNativeSourceCompileTask

    public AbstractNativeSourceCompileTask()

- ## Method Details

  - ### configureSpec

    protected void configureSpec(org.gradle.nativeplatform.toolchain.internal.NativeCompileSpec spec)
    Overrides:
      `configureSpec` in class `AbstractNativeCompileTask`

  - ### getPreCompiledHeader

    @Optional @Incubating public @Nullable org.gradle.nativeplatform.toolchain.internal.PreCompiledHeader getPreCompiledHeader()
    Returns the pre-compiled header to be used during compilation

  - ### setPreCompiledHeader

    @Incubating public void setPreCompiledHeader(@Nullable org.gradle.nativeplatform.toolchain.internal.PreCompiledHeader preCompiledHeader)

  - ### getCompilerVersion

    @Optional protected @Nullable CompilerVersion getCompilerVersion()
    The compiler used, including the type and the version.
    Since:
      4.4