Skip to content

Commit ad3144e

Browse files
committed
Reorganize output directories.
So that they are under the same, sourceSetName based destinationDir.
1 parent 17778fc commit ad3144e

File tree

1 file changed

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

1 file changed

+10
-6
lines changed

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

+10-6
Original file line numberDiff line numberDiff line change
@@ -46,21 +46,25 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
4646
const val KSP_ARTIFACT_NAME = "symbol-processing"
4747
const val KSP_PLUGIN_ID = "com.google.devtools.ksp.symbol-processing"
4848

49+
@JvmStatic
50+
fun getKspOutputDir(project: Project, sourceSetName: String) =
51+
File(project.project.buildDir, "generated/ksp/$sourceSetName")
52+
4953
@JvmStatic
5054
fun getKspClassOutputDir(project: Project, sourceSetName: String) =
51-
File(project.project.buildDir, "generated/ksp/classes/$sourceSetName")
55+
File(getKspOutputDir(project, sourceSetName), "classes")
5256

5357
@JvmStatic
5458
fun getKspJavaOutputDir(project: Project, sourceSetName: String) =
55-
File(project.project.buildDir, "generated/ksp/src/$sourceSetName/java")
59+
File(getKspOutputDir(project, sourceSetName), "java")
5660

5761
@JvmStatic
5862
fun getKspKotlinOutputDir(project: Project, sourceSetName: String) =
59-
File(project.project.buildDir, "generated/ksp/src/$sourceSetName/kotlin")
63+
File(getKspOutputDir(project, sourceSetName), "kotlin")
6064

6165
@JvmStatic
6266
fun getKspResourceOutputDir(project: Project, sourceSetName: String) =
63-
File(project.project.buildDir, "generated/ksp/src/$sourceSetName/resources")
67+
File(getKspOutputDir(project, sourceSetName), "resources")
6468
}
6569

6670
override fun apply(project: Project) {
@@ -108,14 +112,14 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
108112

109113
assert(kotlinCompileProvider.name.startsWith("compile"))
110114
val kspTaskName = kotlinCompileProvider.name.replaceFirst("compile", "ksp")
111-
val destinationDir = File(project.buildDir, "generated/ksp")
115+
val destinationDir = getKspOutputDir(project, sourceSetName)
112116
InternalTrampoline.KotlinCompileTaskData_register(kspTaskName, kotlinCompilation, project.provider { destinationDir })
113117

114118
val kspTaskProvider = project.tasks.register(kspTaskName, KspTask::class.java) { kspTask ->
115119
kspTask.setDestinationDir(destinationDir)
116120
kspTask.mapClasspath { kotlinCompileProvider.get().classpath }
117121
kspTask.options = options
118-
kspTask.outputs.dirs(kotlinOutputDir, javaOutputDir, classOutputDir)
122+
kspTask.outputs.dirs(kotlinOutputDir, javaOutputDir, classOutputDir, resourceOutputDir)
119123
kspTask.dependsOn(kspConfiguration.buildDependencies)
120124
}.apply {
121125
configure {

0 commit comments

Comments
 (0)