Skip to content

Commit 2b36f91

Browse files
authored
Update KSP to 1.4.20-dev-experimental-20201222 (#94)
* Update KSP to 1.4.20-dev-experimental-20201222 This has some breaking ABI changes that require a recompilation to work with newer consumers * Update test * Add new required builder options
1 parent aeb3719 commit 2b36f91

File tree

3 files changed

+25
-3
lines changed

3 files changed

+25
-3
lines changed

ksp/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
buildscript {
3-
ext.ksp_version='1.4.20-dev-experimental-20201204'
3+
ext.ksp_version='1.4.20-dev-experimental-20201222'
44
}
55

66
dependencies {

ksp/src/main/kotlin/com/tschuchort/compiletesting/Ksp.kt

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff 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
*/
3434
val KotlinCompilation.kspSourcesDir: File
3535
get() = kspWorkingDir.resolve("sources")
@@ -68,6 +68,12 @@ private val KotlinCompilation.kspWorkingDir: File
6868
private 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()

ksp/src/test/kotlin/com/tschuchort/compiletesting/KspTest.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.tschuchort.compiletesting
22

3+
import com.google.devtools.ksp.processing.Dependencies
34
import com.google.devtools.ksp.processing.Resolver
45
import com.google.devtools.ksp.processing.SymbolProcessor
56
import 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() {}

0 commit comments

Comments
 (0)