# AbstractNativeCompileTask

API Documentation: | `AbstractNativeCompileTask`

Note: This class is incubating and may change in a future version of Gradle.

Compiles native source files into object files.

### Properties

Property | Description
`compilerArgs` | Incubating Additional arguments to provide to the compiler.
`includes` | Incubating The header directories to be used for compilation.
`macros` | Incubating Macros that should be defined for the compiler.
`objectFileDir` | Incubating The directory where object files will be generated.
`positionIndependentCode` | Incubating Should the compiler generate position independent code?
`source` | Incubating The source files to be compiled.
`toolChain` | Incubating The tool chain used for compilation.

### Property details

#### ``List`<`String`>` `compilerArgs`

Note: This property is incubating and may change in a future version of Gradle.

Additional arguments to provide to the compiler.

#### `FileCollection` `includes`

Note: This property is incubating and may change in a future version of Gradle.

The header directories to be used for compilation.

#### ``Map`<`String`, `String`>` `macros`

Note: This property is incubating and may change in a future version of Gradle.

Macros that should be defined for the compiler.

#### `File` `objectFileDir`

Note: This property is incubating and may change in a future version of Gradle.

The directory where object files will be generated.

#### `boolean` `positionIndependentCode`

Note: This property is incubating and may change in a future version of Gradle.

Should the compiler generate position independent code?

#### `FileCollection` `source`

Note: This property is incubating and may change in a future version of Gradle.

The source files to be compiled.

#### `ToolChain` `toolChain`

Note: This property is incubating and may change in a future version of Gradle.

The tool chain used for compilation.

### Script blocks

No script blocks

### Methods

Method | Description
`includes(includeRoots)` | Incubating Add directories where the compiler should search for header files.
`includes(dirs)` | Incubating Add locations where the compiler should search for header files.
`source(sourceFiles)` | Incubating Adds a set of source files to be compiled. The provided sourceFiles object is evaluated as per `Project.files()`.

### Method details

#### `void` `includes`(`FileCollection` includeRoots)

Note: This method is incubating and may change in a future version of Gradle.

Add directories where the compiler should search for header files.

#### `void` `includes`(`SourceDirectorySet` dirs)

Note: This method is incubating and may change in a future version of Gradle.

Add locations where the compiler should search for header files.

#### `void` `source`(`Object` sourceFiles)

Note: This method is incubating and may change in a future version of Gradle.

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