diff --git a/.space/CODEOWNERS b/.space/CODEOWNERS index 4e3cd60066d..96617b79bc7 100644 --- a/.space/CODEOWNERS +++ b/.space/CODEOWNERS @@ -357,6 +357,7 @@ /plugins/kapt3/kapt3-compiler/test/ "Kotlin Compiler Core" "Kotlin JVM" /plugins/kapt3/kapt3-compiler/testData/ "Kotlin Compiler Core" "Kotlin JVM" /plugins/kapt3/kapt3-compiler/tests-gen/ "Kotlin Compiler Core" "Kotlin JVM" +/plugins/kapt4/ "Kotlin Compiler Core" "Kotlin JVM" /plugins/kotlinx-serialization/ Sergey.Shanshin Leonid.Startsev /plugins/lombok/ "Kotlin Compiler Core" /plugins/noarg/ "Kotlin Compiler Core" diff --git a/build.gradle.kts b/build.gradle.kts index 7a947d42797..1fae6c79fb5 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -810,6 +810,8 @@ tasks { register("kaptTests") { dependsOn(":kotlin-annotation-processing:test") dependsOn(":kotlin-annotation-processing:testJdk11") + dependsOn(":kotlin-annotation-processing-compiler:test") + dependsOn(":kotlin-annotation-processing-compiler:testJdk11") dependsOn(":kotlin-annotation-processing-base:test") dependsOn(":kotlin-annotation-processing-cli:test") } diff --git a/compiler/cli/cli-base/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt b/compiler/cli/cli-base/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt index f364691446a..f3d4b631f3c 100644 --- a/compiler/cli/cli-base/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt +++ b/compiler/cli/cli-base/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt @@ -76,6 +76,7 @@ import org.jetbrains.kotlin.extensions.* import org.jetbrains.kotlin.extensions.internal.CandidateInterceptor import org.jetbrains.kotlin.extensions.internal.InternalNonStableExtensionPoints import org.jetbrains.kotlin.extensions.internal.TypeResolutionInterceptor +import org.jetbrains.kotlin.fir.extensions.FirAnalysisHandlerExtension import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrarAdapter import org.jetbrains.kotlin.idea.KotlinFileType import org.jetbrains.kotlin.js.translate.extensions.JsSyntheticTranslateExtension @@ -673,6 +674,7 @@ class KotlinCoreEnvironment private constructor( FirExtensionRegistrarAdapter.registerExtensionPoint(project) TypeAttributeTranslatorExtension.registerExtensionPoint(project) AssignResolutionAltererExtension.registerExtensionPoint(project) + FirAnalysisHandlerExtension.registerExtensionPoint(project) } internal fun registerExtensionsFromPlugins(project: MockProject, configuration: CompilerConfiguration) { diff --git a/compiler/cli/cli-common/gen/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArgumentsCopyGenerated.kt b/compiler/cli/cli-common/gen/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArgumentsCopyGenerated.kt index f125da99d21..6f50b164cae 100644 --- a/compiler/cli/cli-common/gen/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArgumentsCopyGenerated.kt +++ b/compiler/cli/cli-common/gen/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArgumentsCopyGenerated.kt @@ -78,6 +78,7 @@ fun copyK2JVMCompilerArguments(from: K2JVMCompilerArguments, to: K2JVMCompilerAr to.typeEnhancementImprovementsInStrictMode = from.typeEnhancementImprovementsInStrictMode to.useFastJarFileSystem = from.useFastJarFileSystem to.useJavac = from.useJavac + to.useKapt4 = from.useKapt4 to.useOldBackend = from.useOldBackend to.useOldClassFilesReading = from.useOldClassFilesReading to.useOldInlineClassesManglingScheme = from.useOldInlineClassesManglingScheme diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt index 7bef980a25d..84c9d877a99 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt +++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt @@ -846,6 +846,15 @@ Also sets `-jvm-target` value equal to the selected JDK version""" field = value } + @Argument( + value = "-Xuse-kapt4", + description = "Enable the experimental KAPT 4." + ) + var useKapt4 = false + set(value) { + checkFrozen() + field = value + } override fun configureAnalysisFlags(collector: MessageCollector, languageVersion: LanguageVersion): MutableMap, Any> { val result = super.configureAnalysisFlags(collector, languageVersion) diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/common/arguments.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/common/arguments.kt index 99bb1a92bf5..07c6af28c06 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/common/arguments.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/common/arguments.kt @@ -56,17 +56,18 @@ fun CompilerConfiguration.setupCommonArguments( buildHmppModuleStructure(arguments)?.let { put(CommonConfigurationKeys.HMPP_MODULE_STRUCTURE, it) } } -fun switchToFallbackModeIfNecessary(arguments: CommonCompilerArguments, messageCollector: MessageCollector) { - val isK2 = arguments.useK2 || (arguments.languageVersion?.startsWith('2') ?: (LanguageVersion.LATEST_STABLE >= LanguageVersion.KOTLIN_2_0)) - if (isK2) { - val isKaptUsed = arguments.pluginOptions?.any { it.startsWith("plugin:org.jetbrains.kotlin.kapt3") } == true - if (isKaptUsed) { - if (!arguments.suppressVersionWarnings) { - messageCollector.report( - CompilerMessageSeverity.STRONG_WARNING, - "Kapt currently doesn't support language version 2.0+.\nFalling back to 1.9." - ) - } +private fun switchToFallbackModeIfNecessary(arguments: CommonCompilerArguments, messageCollector: MessageCollector) { + fun warn(message: String) { + if (!arguments.suppressVersionWarnings) messageCollector.report(CompilerMessageSeverity.STRONG_WARNING, message) + } + + if (arguments !is K2JVMCompilerArguments) return + val isK2 = + arguments.useK2 || (arguments.languageVersion?.startsWith('2') ?: (LanguageVersion.LATEST_STABLE >= LanguageVersion.KOTLIN_2_0)) + val isKaptUsed = arguments.pluginOptions?.any { it.startsWith("plugin:org.jetbrains.kotlin.kapt3") } == true + when { + isK2 && isKaptUsed && !arguments.useKapt4 -> { + warn("Kapt currently doesn't support language version 2.0+. Falling back to 1.9.") arguments.languageVersion = LanguageVersion.KOTLIN_1_9.versionString if (arguments.apiVersion?.startsWith("2") == true) { arguments.apiVersion = ApiVersion.KOTLIN_1_9.versionString @@ -74,8 +75,11 @@ fun switchToFallbackModeIfNecessary(arguments: CommonCompilerArguments, messageC arguments.useK2 = false arguments.skipMetadataVersionCheck = true arguments.skipPrereleaseCheck = true - (arguments as? K2JVMCompilerArguments)?.allowUnstableDependencies = true + arguments.allowUnstableDependencies = true } + isK2 && isKaptUsed && arguments.useKapt4 -> warn("Kapt 4 is still experimental. Use with caution.") + arguments.useKapt4 && !isK2 -> warn("-Xuse-kapt4 flag can be only used with language version 2.0+.") + arguments.useKapt4 && !isKaptUsed -> warn("-Xuse-kapt4 flag is present but no Kapt configuration options are provided.") } } diff --git a/compiler/frontend.common.jvm/src/org/jetbrains/kotlin/fir/extensions/FirAnalysisHandlerExtension.kt b/compiler/frontend.common.jvm/src/org/jetbrains/kotlin/fir/extensions/FirAnalysisHandlerExtension.kt new file mode 100644 index 00000000000..3dbcba08006 --- /dev/null +++ b/compiler/frontend.common.jvm/src/org/jetbrains/kotlin/fir/extensions/FirAnalysisHandlerExtension.kt @@ -0,0 +1,32 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir.extensions + +import org.jetbrains.kotlin.config.CompilerConfiguration +import org.jetbrains.kotlin.extensions.ProjectExtensionDescriptor + + +abstract class FirAnalysisHandlerExtension { + companion object : ProjectExtensionDescriptor( + "org.jetbrains.kotlin.fir.firAnalyzeCompleteHandlerExtension", + FirAnalysisHandlerExtension::class.java + ) + + /** + * Checks whether [doAnalysis] should be called + * @param configuration compiler configuration + * @return true if [doAnalysis] should be called + */ + abstract fun isApplicable(configuration: CompilerConfiguration): Boolean + + /** + * Performs code analysis + * @param configuration compiler configuration + * @return true if analysis completed successfully. There can be different causes of failure, an incorrect configuration for example. + * A failure means that there's no reason to continue building the project. + */ + abstract fun doAnalysis(configuration: CompilerConfiguration): Boolean +} \ No newline at end of file diff --git a/compiler/testData/cli/jvm/extraHelp.out b/compiler/testData/cli/jvm/extraHelp.out index dcf580e3ed1..3d2354f90fe 100644 --- a/compiler/testData/cli/jvm/extraHelp.out +++ b/compiler/testData/cli/jvm/extraHelp.out @@ -143,6 +143,7 @@ where advanced options include: See KT-45671 for more details -Xuse-fast-jar-file-system Use fast implementation on Jar FS. This may speed up compilation time, but currently it's an experimental mode -Xuse-javac Use javac for Java source and class files analysis + -Xuse-kapt4 Enable the experimental KAPT 4. -Xuse-old-backend Use the old JVM backend -Xuse-old-class-files-reading Use old class files reading implementation. This may slow down the build and cause problems with Groovy interop. Should be used in case of problems with the new implementation diff --git a/generators/build.gradle.kts b/generators/build.gradle.kts index 8eea94dba0c..4f725aa0ede 100644 --- a/generators/build.gradle.kts +++ b/generators/build.gradle.kts @@ -59,8 +59,9 @@ dependencies { testApi(projectTests(":plugins:jvm-abi-gen")) testApi(projectTests(":plugins:android-extensions-compiler")) testApi(projectTests(":plugins:parcelize:parcelize-compiler")) - testApi(projectTests(":kotlin-annotation-processing")) + testApi(projectTests(":kotlin-annotation-processing-compiler")) testApi(projectTests(":kotlin-annotation-processing-cli")) + testApi(projectTests(":kotlin-annotation-processing")) testApi(projectTests(":kotlin-allopen-compiler-plugin")) testApi(projectTests(":kotlin-noarg-compiler-plugin")) testApi(projectTests(":kotlin-lombok-compiler-plugin")) diff --git a/plugins/kapt3/kapt3-cli/src/KaptCli.kt b/plugins/kapt3/kapt3-cli/src/KaptCli.kt index 82800b297eb..f98003bc184 100644 --- a/plugins/kapt3/kapt3-cli/src/KaptCli.kt +++ b/plugins/kapt3/kapt3-cli/src/KaptCli.kt @@ -114,7 +114,12 @@ private fun transformKaptToolArgs(args: List, messageCollector: MessageC } if (!aptModePassed) { - transformed.addAll(0, kaptArg(KaptCliOption.APT_MODE_OPTION, "compile")) + val isK2 = "-Xuse-kapt4" in transformed && ("-Xuse-k2" in transformed || + transformed.any { it.startsWith("-language-version=2") } || + transformed.lastIndexOf("-language-version").takeIf { it >= 0 } + ?.let { transformed.getOrNull(it + 1)?.startsWith('2') } == true) + + transformed.addAll(0, kaptArg(KaptCliOption.APT_MODE_OPTION, if (isK2) "stubsAndApt" else "compile")) } if (!isTest && !isAtLeastJava9() && !areJavacComponentsAvailable() && !toolsJarPassed) { diff --git a/plugins/kapt3/kapt3-cli/testData/integration/fallback/build.txt b/plugins/kapt3/kapt3-cli/testData/integration/fallback/build.txt index 4041d2a2fcd..a510c56593f 100644 --- a/plugins/kapt3/kapt3-cli/testData/integration/fallback/build.txt +++ b/plugins/kapt3/kapt3-cli/testData/integration/fallback/build.txt @@ -47,8 +47,7 @@ output/sources/generated/Test.java Test.kt # output -warning: kapt currently doesn't support language version 2.0+. -Falling back to 1.9. +warning: kapt currently doesn't support language version 2.0+. Falling back to 1.9. # java -cp output/classes:output/javaClasses:output/ap.jar:%KOTLIN_STDLIB% diff --git a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/Kapt3Plugin.kt b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/Kapt3Plugin.kt index e816c8ed4e9..c9321de55a6 100644 --- a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/Kapt3Plugin.kt +++ b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/Kapt3Plugin.kt @@ -21,13 +21,13 @@ import com.intellij.openapi.project.Project import org.jetbrains.kotlin.analyzer.AnalysisResult import org.jetbrains.kotlin.base.kapt3.* import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys -import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity import org.jetbrains.kotlin.cli.common.messages.MessageRenderer import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector import org.jetbrains.kotlin.cli.jvm.config.JavaSourceRoot import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot import org.jetbrains.kotlin.compiler.plugin.* import org.jetbrains.kotlin.config.CommonConfigurationKeys +import org.jetbrains.kotlin.config.CommonConfigurationKeys.USE_FIR import org.jetbrains.kotlin.config.CompilerConfiguration import org.jetbrains.kotlin.config.CompilerConfigurationKey import org.jetbrains.kotlin.config.JVMConfigurationKeys @@ -59,7 +59,7 @@ import java.io.File import java.io.ObjectInputStream import java.util.* -private val KAPT_OPTIONS = CompilerConfigurationKey.create("Kapt options") +val KAPT_OPTIONS = CompilerConfigurationKey.create("Kapt options") class Kapt3CommandLineProcessor : CommandLineProcessor { override val pluginId: String = ANNOTATION_PROCESSING_COMPILER_PLUGIN_ID @@ -71,12 +71,6 @@ class Kapt3CommandLineProcessor : CommandLineProcessor { if (option !is KaptCliOption) { throw CliOptionProcessingException("Unknown option: ${option.optionName}") } - if (configuration.getBoolean(CommonConfigurationKeys.USE_FIR)) { - configuration[CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY]?.report( - CompilerMessageSeverity.ERROR, - "kapt currently doesn't support language version 2.0\nPlease use language version 1.9 or below" - ) - } val kaptOptions = configuration[KAPT_OPTIONS] ?: KaptOptions.Builder().also { configuration.put(KAPT_OPTIONS, it) } @@ -173,6 +167,7 @@ class Kapt3CommandLineProcessor : CommandLineProcessor { @Suppress("DEPRECATION") class Kapt3ComponentRegistrar : ComponentRegistrar { override fun registerProjectComponents(project: MockProject, configuration: CompilerConfiguration) { + if (configuration.getBoolean(USE_FIR)) return doOpenInternalPackagesIfRequired() val contentRoots = configuration[CLIConfigurationKeys.CONTENT_ROOTS] ?: emptyList() diff --git a/plugins/kapt4/build.gradle.kts b/plugins/kapt4/build.gradle.kts new file mode 100644 index 00000000000..a40702f3431 --- /dev/null +++ b/plugins/kapt4/build.gradle.kts @@ -0,0 +1,59 @@ +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +description = "Annotation Processor for Kotlin" + +plugins { + kotlin("jvm") + id("jps-compatible") +} + +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 } +} + +optInToExperimentalCompilerApi() + +sourceSets { + "main" { projectDefault() } + "test" { + projectDefault() + generatedTestDir() + } +} + +testsJar {} + +kaptTestTask("test", JavaLanguageVersion.of(8)) +kaptTestTask("testJdk11", JavaLanguageVersion.of(11)) +kaptTestTask("testJdk17", JavaLanguageVersion.of(17)) + +fun Project.kaptTestTask(name: String, javaLanguageVersion: JavaLanguageVersion) { + val service = extensions.getByType() + + projectTest(taskName = name, parallel = true) { + useJUnitPlatform { + excludeTags = setOf("IgnoreJDK11") + } + workingDir = rootDir + dependsOn(":dist") + javaLauncher.set(service.launcherFor { languageVersion.set(javaLanguageVersion) }) + } +} + +publish() +runtimeJar() +sourcesJar() +javadocJar() + + +allprojects { + tasks.withType(KotlinCompile::class).all { + kotlinOptions { + freeCompilerArgs += "-Xcontext-receivers" + } + } +} diff --git a/plugins/kapt4/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar b/plugins/kapt4/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar new file mode 100644 index 00000000000..4cf7239748d --- /dev/null +++ b/plugins/kapt4/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar @@ -0,0 +1,6 @@ +# +# Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. +# Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. +# + +org.jetbrains.kotlin.kapt4.Kapt4CompilerPluginRegistrar diff --git a/plugins/kapt4/src/org/jetbrains/kotlin/kapt4/Kapt4AnalysisHandlerExtension.kt b/plugins/kapt4/src/org/jetbrains/kotlin/kapt4/Kapt4AnalysisHandlerExtension.kt new file mode 100644 index 00000000000..7b2fc068bdf --- /dev/null +++ b/plugins/kapt4/src/org/jetbrains/kotlin/kapt4/Kapt4AnalysisHandlerExtension.kt @@ -0,0 +1,38 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.kapt4 + +import org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar +import org.jetbrains.kotlin.config.CommonConfigurationKeys +import org.jetbrains.kotlin.config.CompilerConfiguration +import org.jetbrains.kotlin.fir.extensions.FirAnalysisHandlerExtension +import org.jetbrains.kotlin.kapt3.KAPT_OPTIONS + + +class Kapt4AnalysisHandlerExtension : FirAnalysisHandlerExtension() { + override fun isApplicable(configuration: CompilerConfiguration): Boolean = + configuration.getBoolean(CommonConfigurationKeys.USE_FIR) && configuration[KAPT_OPTIONS] != null + + override fun doAnalysis(configuration: CompilerConfiguration): Boolean { + TODO("Not yet implemented") + } +} + +class Kapt4CompilerPluginRegistrar : CompilerPluginRegistrar() { + override fun ExtensionStorage.registerExtensions(configuration: CompilerConfiguration) { + Companion.registerExtensions(this) + } + + override val supportsK2: Boolean + get() = true + + + companion object { + fun registerExtensions(extensionStorage: ExtensionStorage) = with(extensionStorage) { + FirAnalysisHandlerExtension.registerExtension(Kapt4AnalysisHandlerExtension()) + } + } +} \ No newline at end of file diff --git a/prepare/compiler/build.gradle.kts b/prepare/compiler/build.gradle.kts index b8d17adaa8d..d0c71d03058 100644 --- a/prepare/compiler/build.gradle.kts +++ b/prepare/compiler/build.gradle.kts @@ -86,9 +86,10 @@ val outputJar = fileFrom(buildDir, "libs", "$compilerBaseName.jar") val compilerModules: Array by rootProject.extra val distLibraryProjects = listOfNotNull( - ":kotlin-annotation-processing", + ":kotlin-annotation-processing-compiler", ":kotlin-annotation-processing-cli", ":kotlin-annotation-processing-runtime", + ":kotlin-annotation-processing", ":kotlin-annotations-jvm", ":kotlin-ant", ":kotlin-daemon", diff --git a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-annotation-processing-compiler/kotlin-annotation-processing-compiler.pom b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-annotation-processing-compiler/kotlin-annotation-processing-compiler.pom new file mode 100644 index 00000000000..96c51fc6a7c --- /dev/null +++ b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-annotation-processing-compiler/kotlin-annotation-processing-compiler.pom @@ -0,0 +1,28 @@ + + + 4.0.0 + org.jetbrains.kotlin + kotlin-annotation-processing-compiler + ArtifactsTest.version + Kotlin Annotation Processing Compiler + Annotation Processor for Kotlin + https://kotlinlang.org/ + + + The Apache License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + + + + + Kotlin Team + JetBrains + https://www.jetbrains.com + + + + scm:git:https://github.com/JetBrains/kotlin.git + scm:git:https://github.com/JetBrains/kotlin.git + https://github.com/JetBrains/kotlin + + diff --git a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-annotation-processing/kotlin-annotation-processing.pom b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-annotation-processing/kotlin-annotation-processing.pom index a9e88ef0adb..78bb07c6bab 100644 --- a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-annotation-processing/kotlin-annotation-processing.pom +++ b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-annotation-processing/kotlin-annotation-processing.pom @@ -25,4 +25,12 @@ scm:git:https://github.com/JetBrains/kotlin.git https://github.com/JetBrains/kotlin + + + org.jetbrains.kotlin + kotlin-annotation-processing-compiler + ArtifactsTest.version + runtime + + diff --git a/settings.gradle b/settings.gradle index 14f65203a0b..24623b1c77f 100644 --- a/settings.gradle +++ b/settings.gradle @@ -226,6 +226,7 @@ include ":kotlin-imports-dumper-compiler-plugin", ":kotlin-annotation-processing-base", ":kotlin-annotation-processing-runtime", ":kotlin-annotation-processing-embeddable", + ":kotlin-annotation-processing-compiler", ":kotlin-daemon-embeddable", ":kotlin-annotations-jvm", ":kotlin-scripting-common", @@ -749,10 +750,11 @@ project(':examples:annotation-processor-example').projectDir = "$rootDir/librari project(':kotlin-script-util').projectDir = "$rootDir/libraries/tools/kotlin-script-util" as File project(':kotlin-annotation-processing-embeddable').projectDir = "$rootDir/plugins/kapt3/kotlin-annotation-processing-embeddable" as File project(':kotlin-daemon-embeddable').projectDir = "$rootDir/prepare/kotlin-daemon-embeddable" as File -project(':kotlin-annotation-processing').projectDir = "$rootDir/plugins/kapt3/kapt3-compiler" as File +project(':kotlin-annotation-processing-compiler').projectDir = "$rootDir/plugins/kapt3/kapt3-compiler" as File project(':kotlin-annotation-processing-cli').projectDir = "$rootDir/plugins/kapt3/kapt3-cli" as File project(':kotlin-annotation-processing-base').projectDir = "$rootDir/plugins/kapt3/kapt3-base" as File project(':kotlin-annotation-processing-runtime').projectDir = "$rootDir/plugins/kapt3/kapt3-runtime" as File +project(':kotlin-annotation-processing').projectDir = "$rootDir/plugins/kapt4" as File project(':kotlin-annotations-jvm').projectDir = "$rootDir/libraries/tools/kotlin-annotations-jvm" as File project(':kotlin-scripting-common').projectDir = "$rootDir/libraries/scripting/common" as File project(':kotlin-scripting-jvm').projectDir = "$rootDir/libraries/scripting/jvm" as File