File tree Expand file tree Collapse file tree 3 files changed +25
-3
lines changed
main/kotlin/com/tschuchort/compiletesting
test/kotlin/com/tschuchort/compiletesting Expand file tree Collapse file tree 3 files changed +25
-3
lines changed Original file line number Diff line number Diff line change 1
1
2
2
buildscript {
3
- ext. ksp_version= ' 1.4.20-dev-experimental-20201204 '
3
+ ext. ksp_version= ' 1.4.20-dev-experimental-20201222 '
4
4
}
5
5
6
6
dependencies {
Original file line number Diff line number Diff line change @@ -29,7 +29,7 @@ var KotlinCompilation.symbolProcessors: List<SymbolProcessor>
29
29
}
30
30
31
31
/* *
32
- * The directory where generates KSP sources are written
32
+ * The directory where generated KSP sources are written
33
33
*/
34
34
val KotlinCompilation .kspSourcesDir: File
35
35
get() = kspWorkingDir.resolve(" sources" )
@@ -68,6 +68,12 @@ private val KotlinCompilation.kspWorkingDir: File
68
68
private val KotlinCompilation .kspClassesDir: File
69
69
get() = kspWorkingDir.resolve(" classes" )
70
70
71
+ /* *
72
+ * The directory where compiled KSP caches are written
73
+ */
74
+ private val KotlinCompilation .kspCachesDir: File
75
+ get() = kspWorkingDir.resolve(" caches" )
76
+
71
77
/* *
72
78
* Custom subclass of [AbstractKotlinSymbolProcessingExtension] where processors are pre-defined instead of being
73
79
* loaded via ServiceLocator.
@@ -99,8 +105,18 @@ private class KspCompileTestingComponentRegistrar(
99
105
return
100
106
}
101
107
val options = KspOptions .Builder ().apply {
108
+ this .projectBaseDir = compilation.kspWorkingDir
109
+
102
110
this .processingOptions.putAll(compilation.kspArgs)
103
111
112
+ this .cachesDir = compilation.kspCachesDir.also {
113
+ it.deleteRecursively()
114
+ it.mkdirs()
115
+ }
116
+ this .kspOutputDir = compilation.kspSourcesDir.also {
117
+ it.deleteRecursively()
118
+ it.mkdirs()
119
+ }
104
120
this .classOutputDir = compilation.kspClassesDir.also {
105
121
it.deleteRecursively()
106
122
it.mkdirs()
Original file line number Diff line number Diff line change 1
1
package com.tschuchort.compiletesting
2
2
3
+ import com.google.devtools.ksp.processing.Dependencies
3
4
import com.google.devtools.ksp.processing.Resolver
4
5
import com.google.devtools.ksp.processing.SymbolProcessor
5
6
import com.google.devtools.ksp.symbol.KSClassDeclaration
@@ -75,6 +76,7 @@ class KspTest {
75
76
val genPackage = " ${qName.getQualifier()} .generated"
76
77
val genClassName = " ${qName.getShortName()} _Gen"
77
78
codeGenerator.createNewFile(
79
+ dependencies = Dependencies .ALL_FILES ,
78
80
packageName = genPackage,
79
81
fileName = genClassName
80
82
).bufferedWriter(Charsets .UTF_8 ).use {
@@ -150,7 +152,11 @@ class KspTest {
150
152
) : AbstractTestSymbolProcessor() {
151
153
override fun process (resolver : Resolver ) {
152
154
super .process(resolver)
153
- codeGenerator.createNewFile(packageName, className).bufferedWriter(Charsets .UTF_8 ).use {
155
+ codeGenerator.createNewFile(
156
+ dependencies = Dependencies .ALL_FILES ,
157
+ packageName = packageName,
158
+ fileName = className
159
+ ).bufferedWriter(Charsets .UTF_8 ).use {
154
160
it.write("""
155
161
package $packageName
156
162
class $className () {}
You can’t perform that action at this time.
0 commit comments