From c64a7068d93571c744cceccb1b4a237ca241e9d2 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Tue, 25 Apr 2023 14:27:29 +0200 Subject: [PATCH] Generate Kapt task name for random KotlinCompile task name We had false assumption that KotlinCompile tasks name will always start with "compile" prefix, but our exposed api allows to create tasks with random names. I've adjusted method to calculate kapt task names for any KotlinCompile task name. ^KT-54468 --- .../internal/kapt/Kapt3KotlinGradleSubplugin.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt index 61db08ab165..7fa1b3e71af 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt @@ -498,9 +498,14 @@ internal fun getKaptTaskName( kotlinCompileName: String, prefix: String ): String { - // Replace compile*Kotlin to kapt*Kotlin - assert(kotlinCompileName.startsWith("compile")) - return kotlinCompileName.replaceFirst("compile", prefix) + return if (kotlinCompileName.startsWith("compile")) { + // Replace compile*Kotlin to kapt*Kotlin + kotlinCompileName.replaceFirst("compile", prefix) + } else { + // Task was created via exposed apis (KotlinJvmFactory or MPP) with random name + // in such case adding 'kapt' prefix to name + "$prefix${kotlinCompileName.capitalizeAsciiOnly()}" + } } internal fun buildKaptSubpluginOptions(