@@ -22,21 +22,17 @@ import org.gradle.api.Project
22
22
import org.gradle.api.Task
23
23
import org.gradle.api.UnknownTaskException
24
24
import org.gradle.api.artifacts.Configuration
25
+ import org.gradle.api.file.ConfigurableFileCollection
25
26
import org.gradle.api.provider.Provider
27
+ import org.gradle.api.tasks.SourceSetOutput
26
28
import org.gradle.api.tasks.TaskProvider
27
29
import org.gradle.api.tasks.compile.JavaCompile
28
30
import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry
29
31
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
30
- import org.jetbrains.kotlin.gradle.plugin.FilesSubpluginOption
31
- import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
32
- import org.jetbrains.kotlin.gradle.plugin.KotlinCompilerPluginSupportPlugin
33
- import org.jetbrains.kotlin.gradle.plugin.SubpluginArtifact
34
- import org.jetbrains.kotlin.gradle.plugin.SubpluginOption
35
- import org.jetbrains.kotlin.gradle.plugin.mapClasspath
32
+ import org.jetbrains.kotlin.gradle.plugin.*
36
33
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmAndroidCompilation
37
34
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation
38
35
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaCompilation
39
- import org.jetbrains.kotlin.gradle.tasks.KOTLIN_BUILD_DIR_NAME
40
36
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
41
37
import org.jetbrains.kotlin.incremental.ChangedFiles
42
38
import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty
@@ -122,6 +118,7 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
122
118
val generatedJavaSources = javaCompile.project.fileTree(javaOutputDir)
123
119
generatedJavaSources.include(" **/*.java" )
124
120
javaCompile.source(generatedJavaSources)
121
+ javaCompile.source(resourceOutputDir)
125
122
javaCompile.classpath + = project.files(classOutputDir)
126
123
}
127
124
@@ -145,10 +142,18 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
145
142
146
143
kotlinCompileProvider.configure { kotlinCompile ->
147
144
kotlinCompile.dependsOn(kspTaskProvider)
148
- kotlinCompile.source(kotlinOutputDir, javaOutputDir)
145
+ kotlinCompile.source(kotlinOutputDir, javaOutputDir, resourceOutputDir )
149
146
kotlinCompile.classpath + = project.files(classOutputDir)
150
147
}
151
148
149
+ // KotlinCompilationOutput assumes only one resource provider.
150
+ // Therefore, it's best not to override it in case of conflicting with other plugins.
151
+ // FIXME: Need KotlinCompilationOutput.dir() in upstream.
152
+ when (val outputs = kotlinCompilation.output.allOutputs) {
153
+ is ConfigurableFileCollection -> outputs.from(resourceOutputDir)
154
+ is SourceSetOutput -> outputs.dir(resourceOutputDir)
155
+ }
156
+
152
157
return project.provider { emptyList() }
153
158
}
154
159
0 commit comments