Skip to content

Commit 5dfa9fd

Browse files
committed
Pass generated resources directly to ProcessResources task
1 parent f4ba7b0 commit 5dfa9fd

File tree

1 file changed

+7
-6
lines changed
  • gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle

1 file changed

+7
-6
lines changed

gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt

+7-6
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import org.gradle.api.tasks.Input
2828
import org.gradle.api.tasks.SourceSetOutput
2929
import org.gradle.api.tasks.TaskProvider
3030
import org.gradle.api.tasks.compile.JavaCompile
31+
import org.gradle.language.jvm.tasks.ProcessResources
3132
import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry
3233
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
3334
import org.jetbrains.kotlin.gradle.plugin.*
@@ -149,12 +150,12 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
149150
kotlinCompile.classpath += project.files(classOutputDir)
150151
}
151152

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+
}
158159
}
159160

160161
return project.provider { emptyList() }

0 commit comments

Comments
 (0)