Skip to content

Commit d3b278f

Browse files
authored
Merge pull request #571 from Kotlin/update-ksp-1921
Add option to prevent Gradle plugin from adding dependency on KSP
2 parents 40776fb + e15cb54 commit d3b278f

File tree

4 files changed

+24
-9
lines changed

4 files changed

+24
-9
lines changed

gradle/libs.versions.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[versions]
2-
ksp = "1.9.0-1.0.12"
2+
ksp = "1.9.21-1.0.15"
33
kotlinJupyter = "0.11.0-358"
44
ktlint = "3.4.5"
55
kotlin = "1.9.0"

plugins/dataframe-gradle-plugin/src/main/kotlin/org/jetbrains/dataframe/gradle/ConvenienceSchemaGeneratorPlugin.kt

+18-3
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,29 @@ package org.jetbrains.dataframe.gradle
33
import com.google.devtools.ksp.gradle.KspExtension
44
import org.gradle.api.Plugin
55
import org.gradle.api.Project
6-
import org.gradle.kotlin.dsl.getByType
6+
import org.gradle.kotlin.dsl.findByType
77
import java.util.*
88

99
@Suppress("unused")
1010
class ConvenienceSchemaGeneratorPlugin : Plugin<Project> {
1111
override fun apply(target: Project) {
12-
target.plugins.apply(KspPluginApplier::class.java)
12+
val name = "kotlin.dataframe.add.ksp"
13+
val property = target.findProperty(name)?.toString()
14+
var addKsp = true
15+
16+
if (property != null) {
17+
if (property.equals("true", ignoreCase = true) || property.equals("false", ignoreCase = true)) {
18+
addKsp = property.toBoolean()
19+
} else {
20+
target.logger.warn("Invalid value '$property' for '$name' property. Defaulting to '$addKsp'. Please use 'true' or 'false'.")
21+
}
22+
}
23+
if (addKsp) {
24+
target.plugins.apply(KspPluginApplier::class.java)
25+
}
26+
target.afterEvaluate {
27+
target.extensions.findByType<KspExtension>()?.arg("dataframe.resolutionDir", target.projectDir.absolutePath)
28+
}
1329
target.plugins.apply(SchemaGeneratorPlugin::class.java)
1430
}
1531
}
@@ -31,6 +47,5 @@ internal class KspPluginApplier : Plugin<Project> {
3147
target.configurations.getByName("ksp").dependencies.add(
3248
target.dependencies.create("org.jetbrains.kotlinx.dataframe:symbol-processor-all:$preprocessorVersion")
3349
)
34-
target.extensions.getByType<KspExtension>().arg("dataframe.resolutionDir", target.projectDir.absolutePath)
3550
}
3651
}
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package org.jetbrains.dataframe.gradle
22

3+
import java.util.Locale
4+
35
fun String.toCamelCaseByDelimiters(delimiters: Regex): String {
4-
return split(delimiters).joinToCamelCaseString().decapitalize()
6+
return split(delimiters).joinToCamelCaseString().replaceFirstChar { it.lowercase(Locale.getDefault()) }
57
}
68

79
fun List<String>.joinToCamelCaseString(): String {
8-
return joinToString(separator = "") { it.capitalize() }
10+
return joinToString(separator = "") { s -> s.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() } }
911
}

plugins/symbol-processor/src/main/kotlin/org/jetbrains/dataframe/ksp/DataSchemaGenerator.kt

+1-3
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,7 @@ class DataSchemaGenerator(
4848
private val codeGenerator: com.google.devtools.ksp.processing.CodeGenerator,
4949
) {
5050

51-
fun resolveImportStatements() = listOf(
52-
::resolvePathImports,
53-
).flatMap { it(resolver) }
51+
fun resolveImportStatements(): List<ImportDataSchemaStatement> = resolvePathImports(resolver).toList()
5452

5553
class ImportDataSchemaStatement(
5654
val origin: KSFile,

0 commit comments

Comments
 (0)