@@ -28,6 +28,7 @@ import org.gradle.api.tasks.Input
28
28
import org.gradle.api.tasks.SourceSetOutput
29
29
import org.gradle.api.tasks.TaskProvider
30
30
import org.gradle.api.tasks.compile.JavaCompile
31
+ import org.gradle.language.jvm.tasks.ProcessResources
31
32
import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry
32
33
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
33
34
import org.jetbrains.kotlin.gradle.plugin.*
@@ -149,12 +150,12 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
149
150
kotlinCompile.classpath + = project.files(classOutputDir)
150
151
}
151
152
152
- // KotlinCompilationOutput assumes only one resource provider.
153
- // Therefore, it's best not to override it in case of conflicting with other plugins.
154
- // FIXME: Need KotlinCompilationOutput.dir() in upstream.
155
- when ( val outputs = kotlinCompilation.output.allOutputs) {
156
- is ConfigurableFileCollection -> outputs .from(resourceOutputDir)
157
- is SourceSetOutput -> outputs.dir(resourceOutputDir)
153
+ val processResourcesTaskName = (kotlinCompilation as ? KotlinCompilationWithResources )?.processResourcesTaskName ? : " processResources "
154
+ project.locateTask< ProcessResources >(processResourcesTaskName)?. let { provider ->
155
+ provider.configure { resourcesTask ->
156
+ resourcesTask.dependsOn(kspTaskProvider)
157
+ resourcesTask .from(resourceOutputDir)
158
+ }
158
159
}
159
160
160
161
return project.provider { emptyList() }
0 commit comments