Skip to content

Commit 4953550

Browse files
committed
Kapt: 'kaptKotlin' task should be invoked only when all task dependencies from kapt configuration is built (KT-19178)
1 parent 8b2efca commit 4953550

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/Kapt3KotlinGradleSubplugin.kt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ import org.gradle.api.Project
2424
import org.gradle.api.artifacts.Configuration
2525
import org.gradle.api.artifacts.Dependency
2626
import org.gradle.api.tasks.SourceSet
27+
import org.gradle.api.tasks.TaskDependency
2728
import org.gradle.api.tasks.compile.AbstractCompile
2829
import org.gradle.api.tasks.compile.JavaCompile
29-
import org.jetbrains.kotlin.com.intellij.openapi.util.io.FileUtil
3030
import org.jetbrains.kotlin.gradle.plugin.*
3131
import org.jetbrains.kotlin.gradle.tasks.CompilerPluginOptions
3232
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
@@ -132,16 +132,20 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin<KotlinCompile> {
132132
assert((variantData != null) xor (javaSourceSet != null))
133133

134134
val kaptClasspath = arrayListOf<File>()
135+
val buildDependencies = arrayListOf<TaskDependency>()
135136

136137
fun handleSourceSet(sourceSetName: String) {
137138
val kaptConfiguration = project.findKaptConfiguration(sourceSetName)
138139
val filteredDependencies = kaptConfiguration?.dependencies?.filter {
139140
it.group != getGroupName() || it.name != getArtifactName()
140141
} ?: emptyList()
141142

142-
if (kaptConfiguration != null && filteredDependencies.isNotEmpty()) {
143-
javaCompile.dependsOn(kaptConfiguration.buildDependencies)
144-
kaptClasspath.addAll(kaptConfiguration.resolve())
143+
if (kaptConfiguration != null) {
144+
buildDependencies += kaptConfiguration.buildDependencies
145+
146+
if (filteredDependencies.isNotEmpty()) {
147+
kaptClasspath.addAll(kaptConfiguration.resolve())
148+
}
145149
}
146150
}
147151

@@ -169,6 +173,8 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin<KotlinCompile> {
169173
val kaptGenerateStubsTask = context.createKaptGenerateStubsTask()
170174
val kaptTask = context.createKaptKotlinTask()
171175

176+
kaptTask.dependsOn(*buildDependencies.toTypedArray())
177+
172178
kaptGenerateStubsTask.dependsOn(*kotlinCompile.dependsOn.toTypedArray())
173179
kaptTask.dependsOn(kaptGenerateStubsTask)
174180
kotlinCompile.dependsOn(kaptTask)

0 commit comments

Comments
 (0)