# Copyright (c) 2020, the R8 project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

org.gradle.jvmargs=-Xmx2048M -Dfile.encoding=UTF-8
kotlin.daemon.jvmargs=-Xmx3g -Dkotlin.js.compiler.legacy.force_enabled=true
systemProp.file.encoding=UTF-8

# Enable new incremental compilation
kotlin.incremental.useClasspathSnapshot=true

org.gradle.parallel=true
org.gradle.caching=true

# Do not download any jdks or detect them. We provide them
org.gradle.java.installations.auto-detect=false
org.gradle.java.installations.auto-download=false
