diff --git a/.gitignore b/.gitignore index cd52965..db4721e 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ build/ out/ .idea/ *.iml + +.kotlin \ No newline at end of file diff --git a/build-logic/build.gradle.kts b/build-logic/build.gradle.kts index 1418193..870576f 100644 --- a/build-logic/build.gradle.kts +++ b/build-logic/build.gradle.kts @@ -7,6 +7,6 @@ repositories { } dependencies { - implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.21") + implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.0") implementation("com.palantir.gradle.gitversion:gradle-git-version:3.0.0") } \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index c96709f..651f698 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,3 +1,3 @@ plugins { - kotlin("jvm") version "1.8.21" apply false + kotlin("jvm") version "2.0.0" apply false } diff --git a/kapshot-plugin-gradle/src/main/kotlin/io/koalaql/kapshot/GradlePlugin.kt b/kapshot-plugin-gradle/src/main/kotlin/io/koalaql/kapshot/GradlePlugin.kt index ef70349..5c1c3f8 100644 --- a/kapshot-plugin-gradle/src/main/kotlin/io/koalaql/kapshot/GradlePlugin.kt +++ b/kapshot-plugin-gradle/src/main/kotlin/io/koalaql/kapshot/GradlePlugin.kt @@ -22,7 +22,7 @@ class GradlePlugin : KotlinCompilerPluginSupportPlugin { override fun apply(target: Project) { /* make sure we don't try to add dependency until it has been configured by kotlin plugin */ target.plugins.withId("org.jetbrains.kotlin.jvm") { - target.dependencies.add("implementation", "io.koalaql:kapshot-runtime:${BuildConfig.VERSION}") + target.dependencies.add("api", "io.koalaql:kapshot-runtime:${BuildConfig.VERSION}") } } diff --git a/kapshot-plugin-kotlin/build.gradle.kts b/kapshot-plugin-kotlin/build.gradle.kts index bafb20f..a3e1a0d 100644 --- a/kapshot-plugin-kotlin/build.gradle.kts +++ b/kapshot-plugin-kotlin/build.gradle.kts @@ -1,12 +1,7 @@ plugins { id("publish") - - kotlin("kapt") version "1.8.21" } dependencies { compileOnly("org.jetbrains.kotlin:kotlin-compiler-embeddable") - - kapt("com.google.auto.service:auto-service:1.0.1") - compileOnly("com.google.auto.service:auto-service-annotations:1.0.1") } diff --git a/kapshot-plugin-kotlin/src/main/kotlin/io/koalaql/kapshot/plugin/CaptureTransformer.kt b/kapshot-plugin-kotlin/src/main/kotlin/io/koalaql/kapshot/plugin/CaptureTransformer.kt index fd79d34..fb2b0a3 100644 --- a/kapshot-plugin-kotlin/src/main/kotlin/io/koalaql/kapshot/plugin/CaptureTransformer.kt +++ b/kapshot-plugin-kotlin/src/main/kotlin/io/koalaql/kapshot/plugin/CaptureTransformer.kt @@ -3,7 +3,6 @@ package io.koalaql.kapshot.plugin import org.jetbrains.kotlin.backend.common.IrElementTransformerVoidWithContext import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext import org.jetbrains.kotlin.backend.common.lower.DeclarationIrBuilder -import org.jetbrains.kotlin.backend.common.sourceElement import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.builders.irCall import org.jetbrains.kotlin.ir.builders.irString @@ -13,13 +12,17 @@ import org.jetbrains.kotlin.ir.expressions.IrTypeOperator import org.jetbrains.kotlin.ir.expressions.IrTypeOperatorCall import org.jetbrains.kotlin.ir.expressions.impl.IrConstImpl import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol +import org.jetbrains.kotlin.ir.symbols.UnsafeDuringIrConstructionAPI import org.jetbrains.kotlin.ir.types.IrSimpleType import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.util.kotlinFqName +import org.jetbrains.kotlin.ir.util.sourceElement import java.io.File import java.nio.file.Path import kotlin.io.path.Path +/* this service is registered under resources/META-INF/services */ +@OptIn(UnsafeDuringIrConstructionAPI::class) class CaptureTransformer( private val context: IrPluginContext, private val projectDir: Path, diff --git a/kapshot-plugin-kotlin/src/main/kotlin/io/koalaql/kapshot/plugin/CliProcessor.kt b/kapshot-plugin-kotlin/src/main/kotlin/io/koalaql/kapshot/plugin/CliProcessor.kt index f0207fb..e708844 100644 --- a/kapshot-plugin-kotlin/src/main/kotlin/io/koalaql/kapshot/plugin/CliProcessor.kt +++ b/kapshot-plugin-kotlin/src/main/kotlin/io/koalaql/kapshot/plugin/CliProcessor.kt @@ -1,13 +1,12 @@ package io.koalaql.kapshot.plugin -import com.google.auto.service.AutoService import org.jetbrains.kotlin.compiler.plugin.AbstractCliOption import org.jetbrains.kotlin.compiler.plugin.CliOption import org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor import org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi import org.jetbrains.kotlin.config.CompilerConfiguration -@AutoService(CommandLineProcessor::class) +/* this service is registered under resources/META-INF/services */ @OptIn(ExperimentalCompilerApi::class) class CliProcessor: CommandLineProcessor { override val pluginId: String = "io.koalaql.kapshot-plugin" diff --git a/kapshot-plugin-kotlin/src/main/kotlin/io/koalaql/kapshot/plugin/Registrar.kt b/kapshot-plugin-kotlin/src/main/kotlin/io/koalaql/kapshot/plugin/Registrar.kt index dbf6fb0..f3a669d 100644 --- a/kapshot-plugin-kotlin/src/main/kotlin/io/koalaql/kapshot/plugin/Registrar.kt +++ b/kapshot-plugin-kotlin/src/main/kotlin/io/koalaql/kapshot/plugin/Registrar.kt @@ -1,6 +1,5 @@ package io.koalaql.kapshot.plugin -import com.google.auto.service.AutoService import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys import org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar @@ -8,10 +7,9 @@ import org.jetbrains.kotlin.config.CompilerConfiguration import org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi import kotlin.io.path.Path -@AutoService(CompilerPluginRegistrar::class) @OptIn(ExperimentalCompilerApi::class) class Registrar: CompilerPluginRegistrar() { - override val supportsK2: Boolean get() = false + override val supportsK2: Boolean get() = true override fun ExtensionStorage.registerExtensions(configuration: CompilerConfiguration) { IrGenerationExtension.registerExtension(GenerationExtension( diff --git a/kapshot-plugin-kotlin/src/main/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor b/kapshot-plugin-kotlin/src/main/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor new file mode 100644 index 0000000..66a4c24 --- /dev/null +++ b/kapshot-plugin-kotlin/src/main/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor @@ -0,0 +1 @@ +io.koalaql.kapshot.plugin.CliProcessor \ No newline at end of file diff --git a/kapshot-plugin-kotlin/src/main/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar b/kapshot-plugin-kotlin/src/main/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar new file mode 100644 index 0000000..99c02b2 --- /dev/null +++ b/kapshot-plugin-kotlin/src/main/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar @@ -0,0 +1 @@ +io.koalaql.kapshot.plugin.Registrar \ No newline at end of file