Kapt: Clear stubs directory on non-incremental stub generation (KT-21735)
This commit is contained in:
+11
@@ -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
|
||||
|
||||
+8
-3
@@ -339,6 +339,13 @@ open class KotlinCompile : AbstractKotlinCompile<K2JVMCompilerArguments>(), 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<K2JVMCompilerArguments>(), Kotl
|
||||
}
|
||||
|
||||
if (!incremental) {
|
||||
logger.kotlinDebug { "Removing all kotlin classes in $destinationDir" }
|
||||
destinationDir.deleteRecursively()
|
||||
destinationDir.mkdirs()
|
||||
clearOutputsBeforeNonIncrementalBuild()
|
||||
}
|
||||
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user