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.gradle.api.tasks.incremental.IncrementalTaskInputs
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
||||||
import org.jetbrains.kotlin.gradle.plugin.kotlinDebug
|
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.FilteringSourceRootsContainer
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
import org.jetbrains.kotlin.incremental.ChangedFiles
|
import org.jetbrains.kotlin.incremental.ChangedFiles
|
||||||
@@ -72,6 +73,16 @@ open class KaptGenerateStubsTask : KotlinCompile() {
|
|||||||
args.destinationAsFile = this.destinationDir
|
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) {
|
override fun execute(inputs: IncrementalTaskInputs) {
|
||||||
val sourceRoots = kotlinCompileTask.getSourceRoots()
|
val sourceRoots = kotlinCompileTask.getSourceRoots()
|
||||||
val allKotlinSources = sourceRoots.kotlinSourceFiles
|
val allKotlinSources = sourceRoots.kotlinSourceFiles
|
||||||
|
|||||||
+8
-3
@@ -339,6 +339,13 @@ open class KotlinCompile : AbstractKotlinCompile<K2JVMCompilerArguments>(), Kotl
|
|||||||
@Internal
|
@Internal
|
||||||
override fun getSourceRoots() = SourceRoots.ForJvm.create(getSource(), sourceRootsContainer)
|
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) {
|
override fun callCompiler(args: K2JVMCompilerArguments, sourceRoots: SourceRoots, changedFiles: ChangedFiles) {
|
||||||
sourceRoots as SourceRoots.ForJvm
|
sourceRoots as SourceRoots.ForJvm
|
||||||
|
|
||||||
@@ -368,9 +375,7 @@ open class KotlinCompile : AbstractKotlinCompile<K2JVMCompilerArguments>(), Kotl
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!incremental) {
|
if (!incremental) {
|
||||||
logger.kotlinDebug { "Removing all kotlin classes in $destinationDir" }
|
clearOutputsBeforeNonIncrementalBuild()
|
||||||
destinationDir.deleteRecursively()
|
|
||||||
destinationDir.mkdirs()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user