diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/KaptGenerateStubsTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/KaptGenerateStubsTask.kt index 93039b54cb7..f7d2b20cdc7 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/KaptGenerateStubsTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/KaptGenerateStubsTask.kt @@ -21,6 +21,7 @@ import org.gradle.api.tasks.* import org.gradle.api.tasks.incremental.IncrementalTaskInputs import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments import org.jetbrains.kotlin.gradle.plugin.kotlinDebug +import org.jetbrains.kotlin.gradle.plugin.kotlinWarn import org.jetbrains.kotlin.gradle.tasks.FilteringSourceRootsContainer import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.incremental.ChangedFiles @@ -72,6 +73,16 @@ open class KaptGenerateStubsTask : KotlinCompile() { args.destinationAsFile = this.destinationDir } + override fun clearOutputsBeforeNonIncrementalBuild() { + super.clearOutputsBeforeNonIncrementalBuild() + + if (!stubsDir.deleteRecursively()) { + logger.kotlinWarn("Could not delete $stubsDir") + } + + stubsDir.mkdirs() + } + override fun execute(inputs: IncrementalTaskInputs) { val sourceRoots = kotlinCompileTask.getSourceRoots() val allKotlinSources = sourceRoots.kotlinSourceFiles diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt index 60a2ecac5ec..e6c1f6087fd 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt @@ -339,6 +339,13 @@ open class KotlinCompile : AbstractKotlinCompile(), Kotl @Internal override fun getSourceRoots() = SourceRoots.ForJvm.create(getSource(), sourceRootsContainer) + protected open fun clearOutputsBeforeNonIncrementalBuild() { + logger.kotlinDebug { "Removing all kotlin classes in $destinationDir" } + + destinationDir.deleteRecursively() + destinationDir.mkdirs() + } + override fun callCompiler(args: K2JVMCompilerArguments, sourceRoots: SourceRoots, changedFiles: ChangedFiles) { sourceRoots as SourceRoots.ForJvm @@ -368,9 +375,7 @@ open class KotlinCompile : AbstractKotlinCompile(), Kotl } if (!incremental) { - logger.kotlinDebug { "Removing all kotlin classes in $destinationDir" } - destinationDir.deleteRecursively() - destinationDir.mkdirs() + clearOutputsBeforeNonIncrementalBuild() } try {