# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx2048m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app"s APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true

# Build SDK from source code and debug in Android Stduio. Must also set matterBuildSrcDir.
# Using 2 flags to be unified with CHIPTest
matterSdkSourceBuild=false
# Point to the SDK build dir without quotes (../../../../out/android_arm64 for
# example) to build SDK from source code and debug in Android Studio.
# Set to blank to use the SDK prebuilt by scripts/build/build_examples.py.
matterBuildSrcDir=../../../../out/android_arm64
# Semicolon-separated ABI filter list for building from source (aka IDE build).
# Has no effect if matterSdkSourceBuild is false or matterBuildSrcDir is empty.
# See https://developer.android.com/ndk/guides/abis#sa for a list of ABIs.
matterSourceBuildAbiFilters=arm64-v8a