commonMain.co.touchlab.skie.compilerinject.compilerplugin.SkieCommandLineProcessor.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of kotlin-compiler-linker-plugin-kgp_1.9.20 Show documentation
Show all versions of kotlin-compiler-linker-plugin-kgp_1.9.20 Show documentation
Kotlin compiler plugin that improves Swift interface of a Kotlin Multiplatform framework.
The newest version!
package co.touchlab.skie.compilerinject.compilerplugin
import co.touchlab.skie.util.plugin.SkiePlugin
import co.touchlab.skie.util.plugin.SkiePlugin.Options
import org.jetbrains.kotlin.compiler.plugin.AbstractCliOption
import org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor
import org.jetbrains.kotlin.config.CompilerConfiguration
@org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi
class SkieCommandLineProcessor : CommandLineProcessor {
override val pluginId: String = SkiePlugin.id
private val options = listOf(
Options.skieDirectories,
)
private val optionsMap = options.associateBy { it.optionName }
override val pluginOptions: Collection = options.map { it.toCliOption() }
override fun processOption(option: AbstractCliOption, value: String, configuration: CompilerConfiguration) {
super.processOption(option, value, configuration)
when (optionsMap[option.optionName]) {
Options.skieDirectories -> {
configuration.put(SkieConfigurationKeys.SkieDirectories, Options.skieDirectories.deserialize(value))
}
}
}
}