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

// Platform-specific configuration to compile JVM modules

apply plugin: 'kotlin'

sourceCompatibility = 1.6
targetCompatibility = 1.6

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    testCompile "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
    // Workaround to make addSuppressed work in tests
    testCompile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
    testCompile "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    testCompile "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
    testCompile "junit:junit:$junit_version"
}

repositories {
    maven { url "https://dl.bintray.com/devexperts/Maven/" }
}

tasks.withType(Test) {
    testLogging {
        showStandardStreams = true
        events "passed", "failed"
    }
    def stressTest = project.properties['stressTest']
    if (stressTest != null) systemProperties['stressTest'] = stressTest
}
