ExternalNativeBuildFlags

@Incubating
public interface ExternalNativeBuildFlags


DSL object for per-variant CMake and ndk-build configurations, such as toolchain arguments and compiler flags.

android {
// Similar to other properties in the defaultConfig block, you can override
// these properties for each product flavor you configure.
defaultConfig {
// This block is different from the one you use to link Gradle
// to your CMake or ndk-build script.
externalNativeBuild {
// For ndk-build, instead use the ndkBuild block.
cmake {
// Passes optional arguments to CMake.
arguments "-DANDROID_ARM_NEON=TRUE", "-DANDROID_TOOLCHAIN=clang"

// Sets a flag to enable format macro constants for the C compiler.
cFlags "-D__STDC_FORMAT_MACROS"

// Sets optional flags for the C++ compiler.
cppFlags "-fexceptions", "-frtti"

// Specifies the library and executable targets from your CMake project
// that Gradle should build.
targets "libexample-one", "my-executible-demo"
}
}
}
}

To enable external native builds and set the path to your CMake or ndk-build script, use android.externalNativeBuild.

Summary

Public methods

abstract void
cmake(
    @ExtensionFunctionType @NonNull Function1<@NonNull CmakeFlagsUnit> action
)

Encapsulates per-variant CMake configurations, such as compiler flags and toolchain arguments.

abstract @NonNull CmakeFlags

Encapsulates per-variant CMake configurations, such as compiler flags and toolchain arguments.

abstract @NonNull Map<@NonNull String, @NonNull Object>

Additional per-variant experimental properties for C and C++.

abstract @NonNull NdkBuildFlags

Encapsulates per-variant ndk-build configurations, such as compiler flags and toolchain arguments.

abstract void

Encapsulates per-variant ndk-build configurations, such as compiler flags and toolchain arguments.

Public methods

cmake

abstract void cmake(
    @ExtensionFunctionType @NonNull Function1<@NonNull CmakeFlagsUnit> action
)

Encapsulates per-variant CMake configurations, such as compiler flags and toolchain arguments.

To enable external native builds and set the path to your CMakeLists.txt script, use android.externalNativeBuild.cmake.path.

getCmake

abstract @NonNull CmakeFlags getCmake()

Encapsulates per-variant CMake configurations, such as compiler flags and toolchain arguments.

To enable external native builds and set the path to your CMakeLists.txt script, use android.externalNativeBuild.cmake.path.

getExperimentalProperties

@Incubating
abstract @NonNull Map<@NonNull String, @NonNull ObjectgetExperimentalProperties()

Additional per-variant experimental properties for C and C++.

getNdkBuild

abstract @NonNull NdkBuildFlags getNdkBuild()

Encapsulates per-variant ndk-build configurations, such as compiler flags and toolchain arguments.

To enable external native builds and set the path to your Android.mk script, use android.externalNativeBuild.ndkBuild.path.

ndkBuild

abstract void ndkBuild(
    @ExtensionFunctionType @NonNull Function1<@NonNull NdkBuildFlagsUnit> action
)

Encapsulates per-variant ndk-build configurations, such as compiler flags and toolchain arguments.

To enable external native builds and set the path to your Android.mk script, use android.externalNativeBuild.ndkBuild.path.