@@ -46,21 +46,25 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
46
46
const val KSP_ARTIFACT_NAME = " symbol-processing"
47
47
const val KSP_PLUGIN_ID = " com.google.devtools.ksp.symbol-processing"
48
48
49
+ @JvmStatic
50
+ fun getKspOutputDir (project : Project , sourceSetName : String ) =
51
+ File (project.project.buildDir, " generated/ksp/$sourceSetName " )
52
+
49
53
@JvmStatic
50
54
fun getKspClassOutputDir (project : Project , sourceSetName : String ) =
51
- File (project.project.buildDir, " generated/ksp/ classes/ $sourceSetName " )
55
+ File (getKspOutputDir( project, sourceSetName), " classes" )
52
56
53
57
@JvmStatic
54
58
fun getKspJavaOutputDir (project : Project , sourceSetName : String ) =
55
- File (project.project.buildDir, " generated/ksp/src/ $ sourceSetName/ java" )
59
+ File (getKspOutputDir( project, sourceSetName), " java" )
56
60
57
61
@JvmStatic
58
62
fun getKspKotlinOutputDir (project : Project , sourceSetName : String ) =
59
- File (project.project.buildDir, " generated/ksp/src/ $ sourceSetName/ kotlin" )
63
+ File (getKspOutputDir( project, sourceSetName), " kotlin" )
60
64
61
65
@JvmStatic
62
66
fun getKspResourceOutputDir (project : Project , sourceSetName : String ) =
63
- File (project.project.buildDir, " generated/ksp/src/ $ sourceSetName/ resources" )
67
+ File (getKspOutputDir( project, sourceSetName), " resources" )
64
68
}
65
69
66
70
override fun apply (project : Project ) {
@@ -108,14 +112,14 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
108
112
109
113
assert (kotlinCompileProvider.name.startsWith(" compile" ))
110
114
val kspTaskName = kotlinCompileProvider.name.replaceFirst(" compile" , " ksp" )
111
- val destinationDir = File (project.buildDir, " generated/ksp " )
115
+ val destinationDir = getKspOutputDir (project, sourceSetName )
112
116
InternalTrampoline .KotlinCompileTaskData_register (kspTaskName, kotlinCompilation, project.provider { destinationDir })
113
117
114
118
val kspTaskProvider = project.tasks.register(kspTaskName, KspTask ::class .java) { kspTask ->
115
119
kspTask.setDestinationDir(destinationDir)
116
120
kspTask.mapClasspath { kotlinCompileProvider.get().classpath }
117
121
kspTask.options = options
118
- kspTask.outputs.dirs(kotlinOutputDir, javaOutputDir, classOutputDir)
122
+ kspTask.outputs.dirs(kotlinOutputDir, javaOutputDir, classOutputDir, resourceOutputDir )
119
123
kspTask.dependsOn(kspConfiguration.buildDependencies)
120
124
}.apply {
121
125
configure {
0 commit comments