Kotlin Facet: Always parse argument string to proper compiler arguments bean

#KT-16137 Fixed
 #KT-16157 Fixed
 #KT-16206 Fixed

Original commit: 4325632b3e
This commit is contained in:
Alexey Sedunov
2017-02-02 20:42:07 +03:00
parent d323c39b7d
commit c5ecc540ad
3 changed files with 5 additions and 2 deletions
@@ -24,7 +24,7 @@ class CompilerSettings {
@JvmField var outputDirectoryForJsLibraryFiles: String = DEFAULT_OUTPUT_DIRECTORY
companion object {
private val DEFAULT_ADDITIONAL_ARGUMENTS = "-version"
val DEFAULT_ADDITIONAL_ARGUMENTS = "-version"
private val DEFAULT_OUTPUT_DIRECTORY = "lib"
}
}
@@ -23,6 +23,7 @@ import com.intellij.util.xmlb.annotations.Property
import com.intellij.util.xmlb.annotations.Transient
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.utils.DescriptionAware
sealed class TargetPlatformKind<out Version : DescriptionAware>(
@@ -96,6 +97,7 @@ class KotlinCompilerInfo {
_commonCompilerArguments = value as? CommonCompilerArguments.DummyImpl
}
var k2jsCompilerArguments: K2JSCompilerArguments? = null
var k2jvmCompilerArguments: K2JVMCompilerArguments? = null
var compilerSettings: CompilerSettings? = null
@get:Transient var coroutineSupport: CoroutineSupport
@@ -87,7 +87,8 @@ class JpsKotlinCompilerSettings : JpsElementBase<JpsKotlinCompilerSettings>() {
val facetSettings = module.kotlinFacetExtension?.settings ?: return defaultArguments
if (facetSettings.useProjectSettings) return defaultArguments
val targetPlatform = facetSettings.versionInfo.targetPlatformKind as? TargetPlatformKind.Jvm ?: return defaultArguments
return copyBean(defaultArguments).apply {
val arguments = facetSettings.compilerInfo.k2jvmCompilerArguments ?: defaultArguments
return copyBean(arguments).apply {
jvmTarget = targetPlatform.version.description
}
}