diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index 2082034ea9f..8413ecaa42d 100755 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.gradle.plugin import com.android.build.gradle.* -import com.android.build.gradle.api.BaseVariant import org.gradle.api.* import org.gradle.api.attributes.Category import org.gradle.api.attributes.Usage @@ -185,7 +184,7 @@ internal class Kotlin2JvmSourceSetProcessor( } override fun doTargetSpecificProcessing() { - ifKaptEnabled(project) { + project.whenKaptEnabled { Kapt3GradleSubplugin.createAptConfigurationIfNeeded(project, kotlinCompilation.compilationPurpose) } @@ -787,19 +786,6 @@ class KotlinConfigurationTools internal constructor( ) -internal fun ifKaptEnabled(project: Project, block: () -> Unit) { - var triggered = false - - fun trigger() { - if (triggered) return - triggered = true - block() - } - - project.pluginManager.withPlugin("kotlin-kapt") { trigger() } - project.pluginManager.withPlugin("org.jetbrains.kotlin.kapt") { trigger() } -} - private fun SourceSet.clearJavaSrcDirs() { java.setSrcDirs(emptyList()) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/android/configurator/AndroidKaptSourceSetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/android/configurator/AndroidKaptSourceSetConfigurator.kt index e3ba8a7388e..0915471e818 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/android/configurator/AndroidKaptSourceSetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/android/configurator/AndroidKaptSourceSetConfigurator.kt @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.gradle.plugin.sources.android.configurator import com.android.build.gradle.api.AndroidSourceSet import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet -import org.jetbrains.kotlin.gradle.plugin.ifKaptEnabled +import org.jetbrains.kotlin.gradle.utils.whenKaptEnabled import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget internal object AndroidKaptSourceSetConfigurator : KotlinAndroidSourceSetConfigurator { @@ -16,7 +16,7 @@ internal object AndroidKaptSourceSetConfigurator : KotlinAndroidSourceSetConfigu target: KotlinAndroidTarget, kotlinSourceSet: KotlinSourceSet, androidSourceSet: AndroidSourceSet - ) = ifKaptEnabled(target.project) { + ) = target.project.whenKaptEnabled { Kapt3GradleSubplugin.createAptConfigurationIfNeeded(target.project, androidSourceSet.name) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/whenKaptEnabled.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/whenKaptEnabled.kt new file mode 100644 index 00000000000..8d4f9daecb5 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/whenKaptEnabled.kt @@ -0,0 +1,21 @@ +/* + * Copyright 2010-2022 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.gradle.utils + +import org.gradle.api.Project + +internal fun Project.whenKaptEnabled(block: () -> Unit) { + var triggered = false + + fun trigger() { + if (triggered) return + triggered = true + block() + } + + pluginManager.withPlugin("kotlin-kapt") { trigger() } + pluginManager.withPlugin("org.jetbrains.kotlin.kapt") { trigger() } +} \ No newline at end of file