1717
1818package com.google.devtools.ksp.gradle
1919
20+ import com.google.devtools.ksp.gradle.AndroidPluginIntegration.canUseAddGeneratedSourceDirectoriesApi
2021import com.google.devtools.ksp.impl.KotlinSymbolProcessing
2122import com.google.devtools.ksp.processing.ExitCode
2223import com.google.devtools.ksp.processing.KSPCommonConfig
@@ -191,8 +192,9 @@ abstract class KspAATask @Inject constructor(
191192 cfg.processorClasspath.from(incomingProcessors)
192193 val kotlinOutputDir = KspGradleSubplugin .getKspKotlinOutputDir(project, sourceSetName, target)
193194 val javaOutputDir = KspGradleSubplugin .getKspJavaOutputDir(project, sourceSetName, target)
194- val filteredTasks =
195+ val filteredTasks = if (kspExtension.excludedSources.isEmpty. not ()) {
195196 kspExtension.excludedSources.buildDependencies.getDependencies(null ).map { it.name }
197+ } else emptyList()
196198 kotlinCompilation.allKotlinSourceSetsObservable.forAll { sourceSet ->
197199 val filtered = kotlinOutputDir.zip(javaOutputDir) { kotlinOut, javaOut ->
198200 sourceSet.kotlin.srcDirs.filter {
@@ -205,9 +207,13 @@ abstract class KspAATask @Inject constructor(
205207 }
206208 cfg.sourceRoots.from(filtered)
207209 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+ }
211217 }
212218 if (kotlinCompilation is KotlinCommonCompilation ) {
213219 cfg.commonSourceRoots.from(kotlinCompilation.defaultSourceSet.kotlin)
0 commit comments