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

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

## Method Summary

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<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, read from `getHeaderDependenciesFile()`}.
`RegularFileProperty`
`getHeaderDependenciesFile()`
The file containing the header dependency analysis.
`protected Collection<String>`
`getIncludePaths()`
`ConfigurableFileCollection`
`getIncludes()`
Returns the header directories to be used for compilation.
`protected org.gradle.language.nativeplatform.internal.incremental.IncrementalCompilerBuilder`
`getIncrementalCompilerBuilder()`
`Map<String,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.
`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`
`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(Map<String,String> macros)`
`void`
`setOptimized(boolean optimize)`
Should the compiler generate optimized code?
`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.DefaultTask

`newInputDirectory, newInputFile, newOutputDirectory, newOutputFile`

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

`addValidator, appendParallelSafeAction, compareTo, configure, deleteAllActions, dependsOn, dependsOnTaskDidWork, doFirst, doFirst, doFirst, doLast, doLast, doLast, execute, finalizedBy, getActions, getAnt, getAsDynamicObject, getConvention, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExecuter, getExtensions, getFinalizedBy, getGroup, getIdentityPath, getImpliesSubProjects, getInputs, getLocalState, 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, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, toString`

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

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

## Constructor Details

### AbstractNativeCompileTask

public AbstractNativeCompileTask()

## Method Details

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

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

### getIncludePaths

@Input @Optional protected Collection<String> getIncludePaths()

### includes

public void includes(Object includeRoots)
Add directories where the compiler should search for header files.

### getSource

@InputFiles @PathSensitive(RELATIVE) public ConfigurableFileCollection 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 ListProperty<String> getCompilerArgs()
Additional arguments to provide to the compiler.

Since:
  4.3

### getHeaderDependenciesFile

@Internal public RegularFileProperty getHeaderDependenciesFile()
The file containing the header dependency analysis.

Since:
  4.3

### getHeaderDependencies

@Optional @InputFiles @PathSensitive(NAME_ONLY) protected FileCollection getHeaderDependencies()
The set of dependent headers, read from `getHeaderDependenciesFile()`}. This is used for up-to-date checks only.

Since:
  4.3