# ExternalNativeBuild

# 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  

<br />

```
interface ExternalNativeBuild
```

<br />

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

|---------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------|
| [ExternalNdkBuild](https://developer.android.com/reference/tools/gradle-api/8.4/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[org.gradle.api.Task](https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html)mapped[org.gradle.api.provider.Provider](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Provider.html)to any of the collection[ListProperty](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/ListProperty.html)or[SetProperty](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                                                                                  |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [SetProperty](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/SetProperty.html)`<`[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`>`   | [abiFilters](https://developer.android.com/reference/tools/gradle-api/8.4/com/android/build/api/variant/ExternalNativeBuild#abiFilters()) Specifies the Application Binary Interfaces (ABI) that Gradle should build outputs for.  |
| [ListProperty](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/ListProperty.html)`<`[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`>` | [arguments](https://developer.android.com/reference/tools/gradle-api/8.4/com/android/build/api/variant/ExternalNativeBuild#arguments()) Specifies arguments for CMake.                                                             |
| [ListProperty](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/ListProperty.html)`<`[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`>` | [cFlags](https://developer.android.com/reference/tools/gradle-api/8.4/com/android/build/api/variant/ExternalNativeBuild#cFlags()) Specifies flags for the C compiler.                                                              |
| [ListProperty](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/ListProperty.html)`<`[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`>` | [cppFlags](https://developer.android.com/reference/tools/gradle-api/8.4/com/android/build/api/variant/ExternalNativeBuild#cppFlags()) Specifies flags for the CPP compiler.                                                        |
| [SetProperty](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/SetProperty.html)`<`[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`>`   | [targets](https://developer.android.com/reference/tools/gradle-api/8.4/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.