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 11
22buildscript {
3- ext. ksp_version= ' 1.4.20-dev-experimental-20201204 '
3+ ext. ksp_version= ' 1.4.20-dev-experimental-20201222 '
44}
55
66dependencies {
Original file line number Diff line number Diff line change @@ -29,7 +29,7 @@ var KotlinCompilation.symbolProcessors: List<SymbolProcessor>
2929 }
3030
3131/* *
32- * The directory where generates KSP sources are written
32+ * The directory where generated KSP sources are written
3333 */
3434val KotlinCompilation .kspSourcesDir: File
3535 get() = kspWorkingDir.resolve(" sources" )
@@ -68,6 +68,12 @@ private val KotlinCompilation.kspWorkingDir: File
6868private val KotlinCompilation .kspClassesDir: File
6969 get() = kspWorkingDir.resolve(" classes" )
7070
71+ /* *
72+ * The directory where compiled KSP caches are written
73+ */
74+ private val KotlinCompilation .kspCachesDir: File
75+ get() = kspWorkingDir.resolve(" caches" )
76+
7177/* *
7278 * Custom subclass of [AbstractKotlinSymbolProcessingExtension] where processors are pre-defined instead of being
7379 * loaded via ServiceLocator.
@@ -99,8 +105,18 @@ private class KspCompileTestingComponentRegistrar(
99105 return
100106 }
101107 val options = KspOptions .Builder ().apply {
108+ this .projectBaseDir = compilation.kspWorkingDir
109+
102110 this .processingOptions.putAll(compilation.kspArgs)
103111
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+ }
104120 this .classOutputDir = compilation.kspClassesDir.also {
105121 it.deleteRecursively()
106122 it.mkdirs()
Original file line number Diff line number Diff line change 11package com.tschuchort.compiletesting
22
3+ import com.google.devtools.ksp.processing.Dependencies
34import com.google.devtools.ksp.processing.Resolver
45import com.google.devtools.ksp.processing.SymbolProcessor
56import com.google.devtools.ksp.symbol.KSClassDeclaration
@@ -75,6 +76,7 @@ class KspTest {
7576 val genPackage = " ${qName.getQualifier()} .generated"
7677 val genClassName = " ${qName.getShortName()} _Gen"
7778 codeGenerator.createNewFile(
79+ dependencies = Dependencies .ALL_FILES ,
7880 packageName = genPackage,
7981 fileName = genClassName
8082 ).bufferedWriter(Charsets .UTF_8 ).use {
@@ -150,7 +152,11 @@ class KspTest {
150152 ) : AbstractTestSymbolProcessor() {
151153 override fun process (resolver : Resolver ) {
152154 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 {
154160 it.write("""
155161 package $packageName
156162 class $className () {}
You can’t perform that action at this time.
0 commit comments