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

sourceCompatibility = 1.8
targetCompatibility = 1.8

kotlin {
    jvm {}
    sourceSets {
        jvmMain.dependencies {
            compileOnly "org.codehaus.mojo:animal-sniffer-annotations:1.20"
        }

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

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