# ExternalNativeBuild

[View Source](https://cs.android.com/search?q=file:com/android/build/api/variant/ExternalNativeBuild.kt+class:com.android.build.api.variant.ExternalNativeBuild) Added in 7.0.0


```
interface ExternalNativeBuild
```

<br />

Known direct subclasses [ExternalNdkBuild](https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ExternalNdkBuild)

|---|---|
| `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ExternalNdkBuild` | Interface for ndk-build per-variant info. |

*** ** * ** ***

Parameters to use when building native components.

Warning: Due to current limitations in how Android Gradle Plugin and native build interacts, it is not possible to wire a `https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html` mapped `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Provider.html` to any of the collection `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/ListProperty.html` or `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/SetProperty.html` below. These properties must be resolved at configuration time and therefore cannot have results based on Task execution. This limitation might be lifted in the future.

## Summary

| ### Public properties |
|---|---|
| `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/SetProperty.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ExternalNativeBuild#abiFilters()` Specifies the Application Binary Interfaces (ABI) that Gradle should build outputs for. |
| `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/ListProperty.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ExternalNativeBuild#arguments()` Specifies arguments for CMake. |
| `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/ListProperty.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ExternalNativeBuild#cFlags()` Specifies flags for the C compiler. |
| `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/ListProperty.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ExternalNativeBuild#cppFlags()` Specifies flags for the CPP compiler. |
| `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/SetProperty.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ExternalNativeBuild#targets()` Specifies the library and executable targets from your CMake project that Gradle should build. |

## Public properties

### abiFilters

Added in 7.0.0

```
val abiFilters: SetProperty<String>
```

Specifies the Application Binary Interfaces (ABI) that Gradle should build outputs for. The ABIs that Gradle packages into your APK are determined by {@link com.android.build.gradle.internal.dsl.NdkOptions#abiFilter android.defaultConfig.ndk.abiFilter}

### arguments

Added in 7.0.0

```
val arguments: ListProperty<String>
```

Specifies arguments for CMake.

### cFlags

Added in 7.0.0

```
val cFlags: ListProperty<String>
```

Specifies flags for the C compiler.

### cppFlags

Added in 7.0.0

```
val cppFlags: ListProperty<String>
```

Specifies flags for the CPP compiler.

### targets

Added in 7.0.0

```
val targets: SetProperty<String>
```

Specifies the library and executable targets from your CMake project that Gradle should build.