blob: 7c95176111d18246384d51da14ea3b8c207bf9af [file]
import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler
plugins {
kotlin("multiplatform")
}
repositories {
if (!kotlinBuildProperties.isTeamcityBuild.get()) {
androidXMavenLocal(androidXMavenLocalPath)
}
androidxSnapshotRepo(composeRuntimeSnapshot.versions.snapshot.id.get())
composeGoogleMaven(libs.versions.compose.stable.get())
}
fun KotlinDependencyHandler.implementationArtifactOnly(dependency: String) {
implementation(dependency) {
isTransitive = false
}
}
optInToObsoleteDescriptorBasedAPI()
kotlin {
jvmToolchain(11)
jvm()
sourceSets {
commonTest.dependencies {
implementation(project(":kotlin-stdlib-common"))
implementation(kotlinTest("junit"))
}
jvmTest.configure {
dependsOn(commonTest.get())
dependencies {
// junit
implementation(libs.junit4)
implementation(project.dependencies.platform(libs.junit.bom))
implementation(libs.junit.jupiter.api)
runtimeOnly(libs.junit.jupiter.engine)
runtimeOnly(libs.intellij.fastutil)
runtimeOnly(jpsModelImpl())
implementation(project(":compiler:ir.backend.common"))
implementation(project(":compiler:cli"))
implementation(project(":compiler:cli-jvm"))
implementation(project(":compiler:backend.jvm"))
implementation(project(":compiler:fir:fir2ir:jvm-backend"))
implementation(project(":compiler:backend.jvm.entrypoint"))
implementation(intellijCore())
// kotlin deps
implementation(project(":kotlin-stdlib"))
implementation(project(":kotlin-reflect"))
implementation(project(":kotlin-metadata-jvm"))
// Compose compiler deps
implementation(project(":plugins:compose-compiler-plugin:compiler-hosted"))
implementation(project(":plugins:compose-compiler-plugin:group-mapping"))
// protobuf dependencies for tests
implementation(libs.protobuf.java.lite)
implementation(project(":plugins:compose-compiler-plugin:compiler-hosted:integration-tests:protobuf-test-classes"))
// coroutines for runtime tests
implementation(commonDependency("org.jetbrains.kotlinx", "kotlinx-coroutines-test-jvm"))
// runtime tests
implementationArtifactOnly(composeRuntime())
implementationArtifactOnly(composeRuntimeAnnotations())
implementationArtifactOnly(composeRuntimeTestUtils())
implementation(libs.androidx.collections)
// other compose
implementationArtifactOnly(compose("foundation", "foundation"))
implementationArtifactOnly(compose("foundation", "foundation-layout"))
implementationArtifactOnly(compose("animation", "animation"))
implementationArtifactOnly(compose("ui", "ui"))
implementationArtifactOnly(compose("ui", "ui-graphics"))
implementationArtifactOnly(compose("ui", "ui-text"))
implementationArtifactOnly(compose("ui", "ui-unit"))
// external
implementationArtifactOnly(commonDependency("org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm"))
implementationArtifactOnly("com.google.dagger:dagger:2.40.1")
implementation(libs.intellij.asm)
}
}
}
}
tasks.withType(Test::class.java).configureEach {
this.workingDir = rootDir
this.maxHeapSize = "1024m"
this.jvmArgs("--add-opens=jdk.jdi/com.sun.tools.jdi=ALL-UNNAMED")
// ensure that debugger tests don't launch a separate window
this.systemProperty("java.awt.headless", "true")
this.environment("CI", kotlinBuildProperties.isTeamcityBuild.get())
if (project.providers.gradleProperty("generate.golden").orElse("false").get().toBooleanStrict()) {
this.environment("GENERATE_GOLDEN", "true")
}
// runtime tests are executed in this module with compiler built from source (see androidx.compose.compiler.plugins.kotlin.RuntimeTests)
this.inputs.dir(File(rootDir, "plugins/compose/compiler-hosted/runtime-tests/src")).withPathSensitivity(PathSensitivity.RELATIVE)
}