# CCompile

API Documentation: | `CCompile`

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

Compiles C source files into object files.

### Properties

Property | Description
`compilerArgs` | Incubating Additional arguments to provide to the compiler.
`debuggable` | Incubating Should the compiler generate debuggable code?
`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.
`optimized` | Incubating Should the compiler generate optimized code?
`positionIndependentCode` | Incubating Should the compiler generate position independent code?
`source` | Incubating The source files to be compiled.
`systemIncludes` | Incubating The system include directories to be used for compilation.
`targetPlatform` | Incubating The platform being compiled for.
`toolChain` | Incubating The tool chain used for compilation.

### Methods

Method | Description
`includes(includeRoots)` | Incubating Add directories 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(java.lang.Object[])`.

### Script blocks

No script blocks

### Property details

#### ``ListProperty`<`String`>` `compilerArgs` (read-only)

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

Additional arguments to provide to the compiler.

#### `boolean` `debuggable`

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

Should the compiler generate debuggable code?

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

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.

#### `DirectoryProperty` `objectFileDir` (read-only)

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

The directory where object files will be generated.

#### `boolean` `optimized`

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

Should the compiler generate optimized code?

#### `boolean` `positionIndependentCode`

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

Should the compiler generate position independent code?

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

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

The source files to be compiled.

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

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

The system include directories to be used for compilation.

#### ``Property`<`NativePlatform`>` `targetPlatform` (read-only)

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

The platform being compiled for.

#### ``Property`<`NativeToolChain`>` `toolChain` (read-only)

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

The tool chain used for compilation.

### Method details

#### `void` `includes`(`Object` 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` `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(java.lang.Object[])`.