blob: 061e7fd7047e6a891997ac4ec4205025602a5b9f [file] [edit]
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
plugins {
id("common-configuration")
id("test-federation-convention")
id("com.autonomousapps.dependency-analysis")
kotlin("jvm")
id("java-test-fixtures")
id("project-tests-convention")
id("test-inputs-check-v2")
}
dependencies {
api(project(":compiler:psi:psi-api"))
api(project(":analysis:analysis-api"))
api(project(":analysis:analysis-api-platform-interface"))
api(project(":compiler:resolution.common.jvm"))
implementation(project(":analysis:decompiled:decompiler-to-psi"))
implementation(project(":compiler:config.jvm"))
implementation(project(":compiler:backend"))
implementation(project(":compiler:frontend.common.jvm"))
implementation(project(":compiler:psi:psi-frontend-utils"))
implementation(project(":compiler:psi:psi-impl"))
implementation(project(":core:compiler.common.jvm"))
implementation(project(":core:descriptors"))
implementation(project(":core:descriptors.jvm"))
implementation(project(":compiler:backend.jvm"))
implementation(kotlinxCollectionsImmutable())
api(intellijCore())
implementation(libs.caffeine)
testFixturesApi(platform(libs.junit.bom))
testFixturesImplementation(libs.junit.jupiter.api)
testFixturesImplementation(kotlinTest("junit"))
testFixturesImplementation(project(":analysis:analysis-api"))
testFixturesImplementation(project(":analysis:analysis-api-standalone:analysis-api-standalone-base"))
testFixturesImplementation(testFixtures(project(":compiler:tests-common")))
testFixturesApi(testFixtures(project(":compiler:test-infrastructure-utils")))
testFixturesApi(testFixtures(project(":compiler:test-infrastructure")))
testFixturesImplementation(testFixtures(project(":plugins:plugin-sandbox")))
testFixturesImplementation(testFixtures(project(":compiler:tests-common-new")))
testFixturesImplementation(project(":analysis:analysis-internal-utils"))
testFixturesImplementation(project(":analysis:decompiled:decompiler-to-file-stubs"))
testFixturesImplementation(project(":analysis:decompiled:light-classes-for-decompiled"))
testFixturesImplementation(project(":analysis:decompiled:decompiler-native"))
testFixturesImplementation(project(":kotlin-util-klib-metadata"))
testFixturesImplementation(testFixtures(project(":analysis:analysis-test-framework")))
testFixturesImplementation(commonDependency("org.jetbrains.kotlin:kotlin-reflect")) { isTransitive = false }
testFixturesCompileOnly(toolsJarApi())
testImplementation(testFixtures(project(":compiler:psi:psi-api")))
testImplementation(testFixtures(project(":compiler:tests-common")))
}
sourceSets {
"main" { projectDefault() }
"test" { projectDefault() }
"testFixtures" { projectDefault() }
}
tasks.withType<KotlinJvmCompile>().configureEach {
compilerOptions.optIn.addAll(
listOf(
"org.jetbrains.kotlin.analysis.api.KaImplementationDetail",
"org.jetbrains.kotlin.analysis.api.KaExperimentalApi",
"org.jetbrains.kotlin.analysis.api.KaNonPublicApi",
"org.jetbrains.kotlin.analysis.api.KaIdeApi",
"org.jetbrains.kotlin.analysis.api.KaPlatformInterface",
"org.jetbrains.kotlin.analysis.api.KaContextParameterApi",
"org.jetbrains.kotlin.analysis.api.components.KaSessionComponentImplementationDetail",
"org.jetbrains.kotlin.analysis.api.KaSpiExtensionPoint",
)
)
}
projectTests {
testCodebaseTask(dumpDirs = emptyList()) {
// Forward the source-code-update flag (used by the `analysis-api-mark-internal-apis` skill) from a Gradle property to the test
// JVM. Combine with `-Pkotlin.test.instrumentation.disable.inputs.check=true` so the test can write to source files.
val updateSourceCode = "kotlin.analysis.codebaseTest.internalApi.updateSourceCode"
systemProperty(updateSourceCode, project.providers.gradleProperty(updateSourceCode).orElse("false").get())
}
}