#
# Copyright 2016-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
#

# Kotlin
version=1.3.8-SNAPSHOT
group=org.jetbrains.kotlinx
kotlin_version=1.3.71

# Dependencies
junit_version=4.12
atomicfu_version=0.14.2
knit_version=0.1.3
html_version=0.6.8
lincheck_version=2.7.1
dokka_version=0.9.16-rdev-2-mpp-hacks
byte_buddy_version=1.10.9
reactor_version=3.2.5.RELEASE
reactive_streams_version=1.0.2
rxjava2_version=2.2.8
rxjava3_version=3.0.2
javafx_version=11.0.2
javafx_plugin_version=0.0.8
binary_compatibility_validator_version=0.2.2
blockhound_version=1.0.2.RELEASE
jna_version=5.5.0

# Android versions
android_version=4.1.1.4
androidx_annotation_version=1.1.0
robolectric_version=4.0.2
baksmali_version=2.2.7

# JS
kotlin.js.compiler=both
gradle_node_version=1.2.0
node_version=8.9.3
npm_version=5.7.1
mocha_version=4.1.0
mocha_headless_chrome_version=1.8.2
mocha_teamcity_reporter_version=2.2.2
source_map_support_version=0.5.3

# Settings
kotlin.incremental.multiplatform=true
kotlin.native.ignoreDisabledTargets=true

# Site deneration
jekyll_version=4.0

# JS IR baceknd sometimes crashes with out-of-memory
# TODO: Remove once KT-37187 is fixed
org.gradle.jvmargs=-Xmx2g

# Workaround for Bintray treating .sha512 files as artifacts
# https://github.com/gradle/gradle/issues/11412
systemProp.org.gradle.internal.publish.checksums.insecure=true

# This is commented out, and the property is set conditionally in build.gradle, because 1.3.71 doesn't work with it.
# Once this property is set by default in new versions or 1.3.71 is dropped, either uncomment or remove this line.
#kotlin.mpp.enableGranularSourceSetsMetadata=true
kotlin.mpp.enableCompatibilityMetadataVariant=true