From 5b0c075c8d0a39c96ea3e28b5cde0fd9bb551d70 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 7 Aug 2023 16:19:20 +0200 Subject: [PATCH] Rework list of dependencies of kotlin-annotation-processing --- plugins/kapt4/build.gradle.kts | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/plugins/kapt4/build.gradle.kts b/plugins/kapt4/build.gradle.kts index a1a76579600..dba7de9b86c 100644 --- a/plugins/kapt4/build.gradle.kts +++ b/plugins/kapt4/build.gradle.kts @@ -10,17 +10,32 @@ plugins { dependencies { compileOnly(project(":compiler:frontend.java")) compileOnly(project(":compiler:plugin-api")) - implementation(project(":kotlin-annotation-processing-compiler")) - embedded(project(":kotlin-annotation-processing-compiler")) { isTransitive = false } - implementation(project(":analysis:analysis-api-standalone")) - embedded(project(":analysis:analysis-api-standalone")) { - exclude("org.jetbrains.kotlin", "kotlin-stdlib") - exclude("org.jetbrains.kotlin", "kotlin-stdlib-common") - } + compileOnly(project(":analysis:analysis-api-standalone")) compileOnly(toolsJarApi()) + + embedded(project(":kotlin-annotation-processing-compiler")) { isTransitive = false } + + // The following list of dependencies to be embedded is: analysis-api-standalone plus all its transitive dependencies used from this + // module, excluding the Kotlin compiler and standard libraries. We don't bundle compiler and libraries because they are published + // separately, but we do bundle analysis API modules because they are not published. + // This list is error-prone because if the analysis API module structure changes, the kotlin-annotation-processing artifact might have + // references to non-existing symbols and it won't work. Integration tests are supposed to check that though. + // TODO (KT-61030): simplify this somehow and ensure an integration test checks it. + embedded(project(":analysis:analysis-api-standalone")) { isTransitive = false } + embedded(project(":analysis:analysis-api")) { isTransitive = false } + embedded(project(":analysis:analysis-api-fir")) { isTransitive = false } + embedded(project(":analysis:analysis-api-impl-base")) { isTransitive = false } + embedded(project(":analysis:analysis-api-impl-barebone")) { isTransitive = false } + embedded(project(":analysis:analysis-api-standalone:analysis-api-standalone-base")) { isTransitive = false } + embedded(project(":analysis:analysis-api-standalone:analysis-api-fir-standalone-base")) { isTransitive = false } + embedded(project(":analysis:analysis-internal-utils")) { isTransitive = false } + embedded(project(":analysis:low-level-api-fir")) { isTransitive = false } + embedded(project(":analysis:symbol-light-classes")) { isTransitive = false } + testApiJUnit5() testApi(projectTests(":kotlin-annotation-processing-compiler")) + testImplementation(project(":analysis:analysis-api-standalone")) testRuntimeOnly(toolsJar()) testRuntimeOnly(commonDependency("org.codehaus.woodstox:stax2-api")) testRuntimeOnly(commonDependency("com.fasterxml:aalto-xml"))