17
17
18
18
package com.google.devtools.ksp.gradle
19
19
20
+ import com.google.devtools.ksp.gradle.AndroidPluginIntegration.canUseAddGeneratedSourceDirectoriesApi
20
21
import com.google.devtools.ksp.impl.KotlinSymbolProcessing
21
22
import com.google.devtools.ksp.processing.ExitCode
22
23
import com.google.devtools.ksp.processing.KSPCommonConfig
@@ -191,8 +192,9 @@ abstract class KspAATask @Inject constructor(
191
192
cfg.processorClasspath.from(incomingProcessors)
192
193
val kotlinOutputDir = KspGradleSubplugin .getKspKotlinOutputDir(project, sourceSetName, target)
193
194
val javaOutputDir = KspGradleSubplugin .getKspJavaOutputDir(project, sourceSetName, target)
194
- val filteredTasks =
195
+ val filteredTasks = if (kspExtension.excludedSources.isEmpty. not ()) {
195
196
kspExtension.excludedSources.buildDependencies.getDependencies(null ).map { it.name }
197
+ } else emptyList()
196
198
kotlinCompilation.allKotlinSourceSetsObservable.forAll { sourceSet ->
197
199
val filtered = kotlinOutputDir.zip(javaOutputDir) { kotlinOut, javaOut ->
198
200
sourceSet.kotlin.srcDirs.filter {
@@ -205,9 +207,13 @@ abstract class KspAATask @Inject constructor(
205
207
}
206
208
cfg.sourceRoots.from(filtered)
207
209
cfg.javaSourceRoots.from(filtered)
208
- kspAATask.dependsOn(
209
- sourceSet.kotlin.nonSelfDeps(kspTaskName).filter { it.name !in filteredTasks }
210
- )
210
+ if (kotlinCompilation.platformType != KotlinPlatformType .androidJvm &&
211
+ project.canUseAddGeneratedSourceDirectoriesApi()
212
+ ) {
213
+ kspAATask.dependsOn(
214
+ sourceSet.kotlin.nonSelfDeps(kspTaskName).filter { it.name !in filteredTasks }
215
+ )
216
+ }
211
217
}
212
218
if (kotlinCompilation is KotlinCommonCompilation ) {
213
219
cfg.commonSourceRoots.from(kotlinCompilation.defaultSourceSet.kotlin)
0 commit comments