org.gradle.jvmargs=-Duser.country=US -Dfile.encoding=UTF-8 -Dorg.gradle.internal.publish.checksums.insecure=true

systemProp.file.encoding=UTF-8
systemProp.user.country=US
# Enable new incremental compiation
kotlin.incremental.useClasspathSnapshot=true

org.gradle.parallel=true
org.gradle.caching=true
org.gradle.kotlin.dsl.allWarningsAsErrors=true

# Please keep it in sync with buildSrc gradle.properties.
# It's currently needed for proper configuration cache work, the reason will be investigated later
org.gradle.java.installations.fromEnv=\
  JDK_1_6,JDK_16,\
  JDK_1_7,JDK_17,\
  JDK_1_8,JDK_18,\
  JDK_9_0,JDK_9,\
  JDK_10_0,JDK_10,\
  JDK_11_0,JDK_11,\
  JDK_15_0,JDK_15,\
  JDK_16_0,\
  JDK_17_0

systemProp.org.gradle.internal.http.connectionTimeout=90000
systemProp.org.gradle.internal.http.socketTimeout=90000

cacheRedirectorEnabled=true
defaultSnapshotVersion=2.0.255-SNAPSHOT
kotlinLanguageVersion=1.9

kotlin.build.gradlePlugin.version=0.0.39

#maven.repository.mirror=http://repository.jetbrains.com/remote-repos/
#bootstrap.kotlin.repo=https://maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap
#bootstrap.kotlin.version=1.1.50-dev-1451
bootstrap.kotlin.default.version=2.0.0-dev-4562

kotlin.build.publishing.attempts=20
#signingRequired=true

## The following properties can be added to your local.properties file to customize the build:

kotlin.jvm.target.validation.mode=error
kotlin.options.suppressFreeCompilerArgsModificationWarning=true

#attachedIntellijVersion=203 (or any other platform version)

## Used for compare gradle and jps build

#kotlin.build.postprocessing=false
#kotlin.build.java9=false
#kotlin.build.useBootstrapStdlib=true

# Don't add the Kotlin standard library dependencies by default
# TODO: add this flag in a granular way to the modules that don't need stdlib?
kotlin.stdlib.default.dependency=false
kotlin.js.stdlib.dom.api.included=false

# Suppress warnings about using deprecated and unstable plugins in kotlin-stdlib
kotlin.internal.mpp12x.deprecation.suppress=true
kotlin.mpp.stability.nowarn=true
kotlin.wasm.stability.nowarn=true
kotlin.js.compiler.nowarn=true

# Suppress the build tools API version consistency checks because of workaround.
# Check out bootstrapCompilerClasspath and bootstrapBuildToolsApiClasspath configurations for details.
kotlin.internal.suppress.buildToolsApiVersionConsistencyChecks=true

kotlin.native.enabled=false
kotlin.native.home=kotlin-native/dist

org.gradle.vfs.watch=true

kotlin.build.internal.gradle.setup=true

# Enable JPS build
#jpsBuild=true

# Enable compilation of project using FIR compiler
#kotlin.build.useFir=true

# Enable FIR compiler for kotlin-stdlib, kotlin-reflect, kotlin-test.
#kotlin.build.useFirForLibraries=true

# Enable overriding JDK 6 and JDK 7 with JDK 8 in java toolchains
# This flag is required if you don't have JDK 6 or JDK 7 manually installed
#kotlin.build.isObsoleteJdkOverrideEnabled=true

# Disable -Werror compiler flag
#kotlin.build.disable.werror=true

# Render internal diagostic names
#kotlin.build.render.diagnostic.names=true

# Enable bootstrap from local build of compiler (build from ./gradlew publish)
#bootstrap.local=true
# By default bootstrap compiler is located in ./build/repo directory
# If it differs from default use next flag:
#bootstrap.local.path=/path/to/repo

# Set number of threads which are used for running JUnit 5 tests in concurrent mode
#  If not set then min(number of CPU cores, 16) will be used
#kotlin.test.junit5.maxParallelForks=4

# Those properties are used to automatically generate run configurations for modularized
#    and full pipeline tests for different sets of test data
#  Generate ModularizedTest configurations
#kotlin.fir.modularized.mt.configurations=true
#  Generate FullPipeline configurations
#kotlin.fir.modularized.fp.configurations=true
#  Generate additional configurations for Kotlin project
#kotlin.fir.modularized.additional.configurations
#  Specify paths to projects for modularized tests
#kotlin.fir.modularized.testdata.kotlin=/path/to/kotlin/project/testdata
#kotlin.fir.modularized.testdata.intellij=/path/to/intellij/project/testdata
#kotlin.fir.modularized.testdata.youtrack=/path/to/youtrack/project/testdata
#kotlin.fir.modularized.testdata.space=/path/to/space/project/testdata

# =====================
# JS & Wasm Tests
# Any property whose name starts with "fd." will be forwarded to unit test process without "fd." prefix and the same value,
# including properties from root local.properties.

# The property to control IR dump strategy.
# For `KotlinLike` it uses `e.dumpKotlinLike()` which is more readable & concise but may omit some information,
# otherwise "classic" `e.dump()` which is more verbose.
#fd.org.jetbrains.kotlin.compiler.ir.dump.strategy=KotlinLike

# Customize wasm unit test runner, possible values:
# * none | false | 0 (default)
#   - Do nothing special.
# * debug | true | 1
#   - Prints paths to current test's kt file and other generated files.
#   - Generates .wat file.
#   - Generate html file to run a test inside browser.
#   - Generate verbose js for running a test (log "test passed").
# * super_debug | 2
#   - All from previous.
#   - Dump IR after each phase.
#fd.kotlin.wasm.debugMode=debug

# =====================
# Enable new dependency resolution | KT-58319
kotlin.mpp.import.enableKgpDependencyResolution=true
