## 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.
# Default value: -Xmx1024m -XX:MaxPermSize=256m
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
#
# 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
#Wed Nov 18 14:49:00 GMT 2020
# b/187424159 enableJetifier causes Tuning Fork dependency import to fail during Gradle sync
#android.enableJetifier=true
android.useAndroidX=true

android.prefabVersion=2.0.0

GameSDKPath=../../..

# Set to true to build Android Performance Tuner runtime assets
# and enable the library at runtime
APTEnabled=false

# Set to true to delivery optimized compressed assets using the Play Asset Delivery API
PADEnabled=false