# AbstractNativeSourceCompileTask

API Documentation: | `AbstractNativeSourceCompileTask`

Known Subtypes: |
`CppCompile` | `ObjectiveCCompile` |
`CCompile` | `ObjectiveCppCompile` |

Compiles native source files into object files.

### Properties

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

### Methods

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

### Script blocks

No script blocks

### Property details

#### ``ListProperty`<`String`>` `compilerArgs`

Additional arguments to provide to the compiler.

#### `boolean` `debuggable`

Should the compiler generate debuggable code?

#### `ConfigurableFileCollection` `includes` (read-only)

The header directories to be used for compilation.

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

Macros that should be defined for the compiler.

#### `DirectoryProperty` `objectFileDir`

The directory where object files will be generated.

#### `boolean` `optimized`

Should the compiler generate optimized code?

#### `boolean` `positionIndependentCode`

Should the compiler generate position independent code?

#### `ConfigurableFileCollection` `source` (read-only)

The source files to be compiled.

#### `ConfigurableFileCollection` `systemIncludes` (read-only)

The system include directories to be used for compilation.

#### ``Property`<`NativePlatform`>` `targetPlatform`

The platform being compiled for.

#### ``Property`<`NativeToolChain`>` `toolChain`

The tool chain used for compilation.

### Method details

#### `void` `includes`(`Object` includeRoots)

Add directories where the compiler should search for header files.

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

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