import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { kotlin("jvm") } project.updateJvmTarget("1.8") val allTestsRuntime by configurations.creating val testApi by configurations testApi.extendsFrom(allTestsRuntime) val embeddableTestRuntime by configurations.creating { extendsFrom(allTestsRuntime) attributes { attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_RUNTIME)) attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.LIBRARY)) } } dependencies { allTestsRuntime(libs.junit4) testApi(kotlinStdlib("jdk8")) testApi(project(":kotlin-scripting-ide-services-unshaded")) testApi(project(":kotlin-scripting-compiler")) testApi(project(":kotlin-scripting-dependencies-maven")) testApi(project(":compiler:cli")) testImplementation(commonDependency("org.jetbrains.kotlinx", "kotlinx-coroutines-core")) testImplementation(commonDependency("org.jetbrains.kotlinx", "kotlinx-coroutines-core-jvm")) testImplementation(commonDependency("org.jetbrains.kotlin:kotlin-reflect")) { isTransitive = false } testImplementation(project(":analysis:decompiled:decompiler-to-psi")) testImplementation(project(":analysis:decompiled:decompiler-to-file-stubs")) testImplementation(intellijCore()) testImplementation(projectTests(":analysis:decompiled:decompiler-to-file-stubs")) testRuntimeOnly(project(":kotlin-compiler")) testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps", "trove4j")) testRuntimeOnly(project(":kotlin-scripting-ide-common")) { isTransitive = false } embeddableTestRuntime(project(":kotlin-scripting-ide-services")) embeddableTestRuntime(project(":kotlin-scripting-compiler-impl-embeddable")) embeddableTestRuntime(project(":kotlin-scripting-dependencies")) embeddableTestRuntime(project(":kotlin-scripting-dependencies-maven-all")) embeddableTestRuntime(kotlinStdlib("jdk8")) embeddableTestRuntime(testSourceSet.output) embeddableTestRuntime(commonDependency("org.jetbrains.kotlinx", "kotlinx-coroutines-core")) embeddableTestRuntime(commonDependency("org.jetbrains.kotlinx", "kotlinx-coroutines-core-jvm")) } sourceSets { "main" {} "test" { projectDefault() } } tasks.withType().configureEach { compilerOptions.freeCompilerArgs.add("-Xallow-kotlin-package") } projectTest(parallel = true) { dependsOn(":kotlin-compiler:distKotlinc") workingDir = rootDir doFirst { systemProperty("kotlin.script.base.compiler.arguments", "-language-version 1.9") } } // This doesn;t work now due to conflicts between embeddable compiler contents and intellij sdk modules // To make it work, the dependencies to the intellij sdk should be eliminated projectTest(taskName = "embeddableTest", parallel = true) { workingDir = rootDir dependsOn(embeddableTestRuntime) classpath = embeddableTestRuntime exclude("**/JvmReplIdeTest.class") doFirst { systemProperty("kotlin.script.base.compiler.arguments", "-language-version 1.9") } }