/*
 * Copyright 2016-2020 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: 'org.jetbrains.kotlin.jvm'

sourceCompatibility = 1.6
targetCompatibility = 1.6

dependencies {
    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"
}

compileKotlin {
    kotlinOptions {
        freeCompilerArgs += ['-Xexplicit-api=strict']
    }
}

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