diff --git a/jps/jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt b/jps/jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt index da10a80bcb3..df26ced324f 100644 --- a/jps/jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt +++ b/jps/jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt @@ -113,6 +113,8 @@ class KotlinFacetSettings { val DEFAULT_VERSION = 0 } + var useProjectSettings: Boolean = false + var versionInfo = KotlinVersionInfo() var compilerInfo = KotlinCompilerInfo() } diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/JpsKotlinCompilerSettings.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/JpsKotlinCompilerSettings.kt index 6b0f860732d..870246222e2 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/JpsKotlinCompilerSettings.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/JpsKotlinCompilerSettings.kt @@ -64,6 +64,7 @@ class JpsKotlinCompilerSettings : JpsElementBase() { fun getCommonCompilerArguments(module: JpsModule): CommonCompilerArguments { val defaultArguments = getSettings(module.project).commonCompilerArguments val facetSettings = module.kotlinFacetExtension?.settings ?: return defaultArguments + if (facetSettings.useProjectSettings) return defaultArguments val (languageLevel, apiLevel) = facetSettings.versionInfo return facetSettings.compilerInfo.commonCompilerArguments?.apply { languageVersion = languageLevel?.description @@ -78,6 +79,7 @@ class JpsKotlinCompilerSettings : JpsElementBase() { fun getK2JvmCompilerArguments(module: JpsModule): K2JVMCompilerArguments { val defaultArguments = getSettings(module.project).k2JvmCompilerArguments 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 { jvmTarget = targetPlatform.version.description @@ -89,8 +91,10 @@ class JpsKotlinCompilerSettings : JpsElementBase() { } fun getK2JsCompilerArguments(module: JpsModule): K2JSCompilerArguments { - return module.kotlinFacetExtension?.settings?.compilerInfo?.k2jsCompilerArguments - ?: getSettings(module.project).k2JsCompilerArguments + val defaultArguments = getSettings(module.project).k2JsCompilerArguments + val facetSettings = module.kotlinFacetExtension?.settings ?: return defaultArguments + if (facetSettings.useProjectSettings) return defaultArguments + return facetSettings.compilerInfo.k2jsCompilerArguments ?: defaultArguments } fun setK2JsCompilerArguments(project: JpsProject, k2JsCompilerArguments: K2JSCompilerArguments) { @@ -98,7 +102,10 @@ class JpsKotlinCompilerSettings : JpsElementBase() { } fun getCompilerSettings(module: JpsModule): CompilerSettings { - return module.kotlinFacetExtension?.settings?.compilerInfo?.compilerSettings ?: getSettings(module.project).compilerSettings + val defaultSettings = getSettings(module.project).compilerSettings + val facetSettings = module.kotlinFacetExtension?.settings ?: return defaultSettings + if (facetSettings.useProjectSettings) return defaultSettings + return facetSettings.compilerInfo.compilerSettings ?: defaultSettings } fun setCompilerSettings(project: JpsProject, compilerSettings: CompilerSettings) {