# Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Settings specified in this file will override any Gradle settings
# configured through the IDE.

# 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: -Xmx10248m -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

VERSION_NAME=3.6.2-SNAPSHOT
GROUP=com.airbnb.android

POM_DESCRIPTION=Lottie is an animation library that renders Adobe After Effects animations natively in realtime.
POM_URL=https://github.com/airbnb/lottie-android
POM_SCM_URL=https://github.com/airbnb/lottie-android
POM_SCM_CONNECTION=scm:git@github.com:airbnb/lottie-android.git
POM_SCM_DEV_CONNECTION=scm:git@github.com:airbnb/lottie-android.git
POM_LICENSE_NAME=Apache License 2.0
POM_LICENSE_URL=https://github.com/airbnb/lottie-android/blob/master/LICENSE
POM_LICENSE_DIST=repo
POM_DEVELOPER_ID=airbnb
POM_DEVELOPER_NAME=Airbnb
POM_DEVELOPER_EMAIL=lottie@airbnb.com
POM_INCEPTION_YEAR=2017
android.useAndroidX=true
android.enableJetifier=true
org.gradle.caching=true
org.gradle.jvmargs=-Xmx4096m
org.gradle.daemon=true
org.gradle.parallel=true
