Kotlin JPS plugin: add "version" setting
Part of KTIJ-11633
This commit is contained in:
@@ -8,11 +8,9 @@ package org.jetbrains.kotlin.jps.model
|
||||
import org.jetbrains.jps.model.JpsProject
|
||||
import org.jetbrains.jps.model.ex.JpsElementBase
|
||||
import org.jetbrains.jps.model.ex.JpsElementChildRoleBase
|
||||
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2MetadataCompilerArguments
|
||||
import org.jetbrains.kotlin.cli.common.arguments.*
|
||||
import org.jetbrains.kotlin.config.CompilerSettings
|
||||
import org.jetbrains.kotlin.config.JpsPluginSettings
|
||||
|
||||
var JpsProject.kotlinCompilerSettings
|
||||
get() = kotlinCompilerSettingsContainer.compilerSettings
|
||||
@@ -20,6 +18,12 @@ var JpsProject.kotlinCompilerSettings
|
||||
getOrCreateSettings().compilerSettings = value
|
||||
}
|
||||
|
||||
var JpsProject.kotlinJpsPluginSettings
|
||||
get() = kotlinCompilerSettingsContainer.jpsPluginSettings
|
||||
internal set(value) {
|
||||
getOrCreateSettings().jpsPluginSettings = value
|
||||
}
|
||||
|
||||
var JpsProject.kotlinCommonCompilerArguments
|
||||
get() = kotlinCompilerSettingsContainer.commonCompilerArguments
|
||||
internal set(value) {
|
||||
@@ -62,6 +66,7 @@ class JpsKotlinCompilerSettings : JpsElementBase<JpsKotlinCompilerSettings>() {
|
||||
internal var k2JvmCompilerArguments = K2JVMCompilerArguments()
|
||||
internal var k2JsCompilerArguments = K2JSCompilerArguments()
|
||||
internal var compilerSettings = CompilerSettings()
|
||||
internal var jpsPluginSettings = JpsPluginSettings()
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
internal operator fun <T : CommonCompilerArguments> get(compilerArgumentsClass: Class<T>): T = when (compilerArgumentsClass) {
|
||||
@@ -78,6 +83,7 @@ class JpsKotlinCompilerSettings : JpsElementBase<JpsKotlinCompilerSettings>() {
|
||||
copy.k2JvmCompilerArguments = this.k2JvmCompilerArguments
|
||||
copy.k2JsCompilerArguments = this.k2JsCompilerArguments
|
||||
copy.compilerSettings = this.compilerSettings
|
||||
copy.jpsPluginSettings = this.jpsPluginSettings
|
||||
return copy
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,8 @@ class KotlinModelSerializerService : KotlinCommonJpsModelSerializerExtension() {
|
||||
KotlinCommonCompilerArgumentsSerializer(),
|
||||
Kotlin2JvmCompilerArgumentsSerializer(),
|
||||
Kotlin2JsCompilerArgumentsSerializer(),
|
||||
KotlinCompilerSettingsSerializer()
|
||||
KotlinCompilerSettingsSerializer(),
|
||||
KotlinJpsPluginSettingsSerializer()
|
||||
)
|
||||
|
||||
override fun getFacetConfigurationSerializers() = listOf(JpsKotlinFacetConfigurationSerializer)
|
||||
@@ -81,6 +82,14 @@ internal class KotlinCompilerSettingsSerializer : BaseJpsCompilerSettingsSeriali
|
||||
}
|
||||
}
|
||||
|
||||
internal class KotlinJpsPluginSettingsSerializer : BaseJpsCompilerSettingsSerializer<JpsPluginSettings>(
|
||||
SettingConstants.KOTLIN_JPS_PLUGIN_SETTINGS_SECTION, ::JpsPluginSettings
|
||||
) {
|
||||
override fun onLoad(project: JpsProject, settings: JpsPluginSettings) {
|
||||
project.kotlinJpsPluginSettings = settings
|
||||
}
|
||||
}
|
||||
|
||||
internal class KotlinCommonCompilerArgumentsSerializer : BaseJpsCompilerSettingsSerializer<CommonCompilerArguments.DummyImpl>(
|
||||
SettingConstants.KOTLIN_COMMON_COMPILER_ARGUMENTS_SECTION, CommonCompilerArguments::DummyImpl
|
||||
) {
|
||||
|
||||
Reference in New Issue
Block a user