diff --git a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspAATask.kt b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspAATask.kt index 1b68e92cce..824b09a238 100644 --- a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspAATask.kt +++ b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspAATask.kt @@ -167,21 +167,9 @@ abstract class KspAATask @Inject constructor( cfg.moduleName.value(moduleName) val kotlinOutputDir = KspGradleSubplugin.getKspKotlinOutputDir(project, sourceSetName, target) val javaOutputDir = KspGradleSubplugin.getKspJavaOutputDir(project, sourceSetName, target) - val filteredTasks = - kspExtension.excludedSources.buildDependencies.getDependencies(null).map { it.name } kotlinCompilation.allKotlinSourceSetsObservable.forAll { sourceSet -> - val filtered = sourceSet.kotlin.srcDirs.filter { - !kotlinOutputDir.isParentOf(it) && !javaOutputDir.isParentOf(it) && - it !in kspExtension.excludedSources - }.map { - // @SkipWhenEmpty doesn't work well with File. - project.objects.fileTree().from(it) - } - cfg.sourceRoots.from(filtered) - cfg.javaSourceRoots.from(filtered) - kspAATask.dependsOn( - sourceSet.kotlin.nonSelfDeps(kspTaskName).filter { it.name !in filteredTasks } - ) + cfg.sourceRoots.from(sourceSet.kotlin.sourceDirectories) + cfg.javaSourceRoots.from(sourceSet.kotlin.sourceDirectories) } if (kotlinCompilation is KotlinCommonCompilation) { cfg.commonSourceRoots.from(kotlinCompilation.defaultSourceSet.kotlin) diff --git a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspExtension.kt b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspExtension.kt index 96f62d0627..bfa83275c0 100644 --- a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspExtension.kt +++ b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspExtension.kt @@ -43,6 +43,7 @@ abstract class KspExtension @Inject constructor(project: Project) { // Specify sources that should be excluded from KSP. // If you have a task that generates sources, you can call `ksp.excludedSources.from(task)`. + // TODO - Deprecate and then remove this DSL? abstract val excludedSources: ConfigurableFileCollection open val arguments: Map get() = apOptions.get() diff --git a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt index 4a0220cf46..cb5d6fca49 100644 --- a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt +++ b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt @@ -57,7 +57,6 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet import org.jetbrains.kotlin.gradle.plugin.SubpluginArtifact import org.jetbrains.kotlin.gradle.plugin.SubpluginOption import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion -import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinCommonCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmAndroidCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinSharedNativeCompilation @@ -360,16 +359,8 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool ) } } else { - val filteredTasks = - kspExtension.excludedSources.buildDependencies.getDependencies(null).map { it.name } kotlinCompilation.allKotlinSourceSetsObservable.forAll { sourceSet -> - kspTask.setSource( - sourceSet.kotlin.srcDirs.filter { - !kotlinOutputDir.isParentOf(it) && !javaOutputDir.isParentOf(it) && - it !in kspExtension.excludedSources - } - ) - kspTask.dependsOn(sourceSet.kotlin.nonSelfDeps(kspTaskName).filter { it.name !in filteredTasks }) + kspTask.setSource(sourceSet.kotlin.sourceDirectories) } } @@ -603,13 +594,7 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool project.files(kotlinOutputDir).builtBy(kspTaskProvider), project.files(javaOutputDir).builtBy(kspTaskProvider), ) - if (kotlinCompilation is KotlinCommonCompilation) { - // Do not add generated sources to common source sets. - // They will be observed by downstreams and violate current build scheme. - kotlinCompileProvider.configure { it.source(*generatedSources) } - } else { - kotlinCompilation.defaultSourceSet.kotlin.srcDirs(*generatedSources) - } + kotlinCompileProvider.configure { it.source(*generatedSources) } kotlinCompileProvider.configure { kotlinCompile -> when (kotlinCompile) { diff --git a/integration-tests/src/test/kotlin/com/google/devtools/ksp/test/AndroidIT.kt b/integration-tests/src/test/kotlin/com/google/devtools/ksp/test/AndroidIT.kt index 0aed320ef5..c769331f1b 100644 --- a/integration-tests/src/test/kotlin/com/google/devtools/ksp/test/AndroidIT.kt +++ b/integration-tests/src/test/kotlin/com/google/devtools/ksp/test/AndroidIT.kt @@ -21,7 +21,12 @@ class AndroidIT(useKSP2: Boolean) { // Disabling configuration cache. See https://github.com/google/ksp/issues/299 for details gradleRunner.withArguments( - "clean", "build", "minifyReleaseWithR8", "--configuration-cache-problems=warn", "--info", "--stacktrace" + "clean", + "build", + "minifyReleaseWithR8", + "--info", + "--stacktrace", + "-Dorg.gradle.unsafe.isolated-projects=true" ).build().let { result -> Assert.assertEquals(TaskOutcome.SUCCESS, result.task(":workload:build")?.outcome) val mergedConfiguration = File(project.root, "workload/build/outputs/mapping/release/configuration.txt") diff --git a/integration-tests/src/test/resources/playground-android/build.gradle.kts b/integration-tests/src/test/resources/playground-android/build.gradle.kts index b54fb383e9..ca6066e19d 100644 --- a/integration-tests/src/test/resources/playground-android/build.gradle.kts +++ b/integration-tests/src/test/resources/playground-android/build.gradle.kts @@ -8,13 +8,3 @@ buildscript { google() } } - -allprojects { - val testRepo: String by project - repositories { - maven(testRepo) - mavenCentral() - maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap/") - google() - } -} diff --git a/integration-tests/src/test/resources/playground-android/test-processor/build.gradle.kts b/integration-tests/src/test/resources/playground-android/test-processor/build.gradle.kts index 75c6c7c5ab..db3d82de4a 100644 --- a/integration-tests/src/test/resources/playground-android/test-processor/build.gradle.kts +++ b/integration-tests/src/test/resources/playground-android/test-processor/build.gradle.kts @@ -12,6 +12,7 @@ repositories { maven(testRepo) mavenCentral() maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap/") + google() } dependencies { diff --git a/integration-tests/src/test/resources/playground-android/workload/build.gradle.kts b/integration-tests/src/test/resources/playground-android/workload/build.gradle.kts index f6874ac1e3..09f0149794 100644 --- a/integration-tests/src/test/resources/playground-android/workload/build.gradle.kts +++ b/integration-tests/src/test/resources/playground-android/workload/build.gradle.kts @@ -13,6 +13,7 @@ repositories { maven(testRepo) mavenCentral() maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap/") + google() } dependencies {