# Copyright (c) 2023, 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=false
org.gradle.configuration-cache=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

# Configure Java toolchains
#
# Run
#   tools/gradle.py -q javaToolchains
# to check the actual JDK's picked up by Gradle.
#
# NOTE: Gradle will ignore directories which does not exist, as will be the
# case for JDK's for platforms different from the one this is running on
# when using the default downloadDeps setup.
org.gradle.java.installations.paths=\
third_party/openjdk/jdk-11/linux,\
third_party/openjdk/jdk-17/linux,\
third_party/openjdk/jdk-21/linux,\
third_party/openjdk/jdk-22/linux,\
third_party/openjdk/jdk-11/osx,\
third_party/openjdk/jdk-17/osx,\
third_party/openjdk/jdk-21/osx,\
third_party/openjdk/jdk-22/osx,\
third_party/openjdk/jdk-11/windows,\
third_party/openjdk/jdk-17/windows,\
third_party/openjdk/jdk-21/windows,\
third_party/openjdk/jdk-22/windows
