[JS, Wizard] Use IR in gradle.properties and otherwise use as a param

^KT-41418 fixed
This commit is contained in:
Ilya Goncharov
2020-08-26 15:50:40 +03:00
parent 13bf15b403
commit cd0bdc190b
2 changed files with 19 additions and 3 deletions
@@ -44,6 +44,7 @@ interface JSConfigurator : ModuleConfiguratorWithModuleType, ModuleConfiguratorW
GradlePlugin.gradleProperties GradlePlugin.gradleProperties
.addValues( .addValues(
"kotlin.js.generate.executable.default" to "false", "kotlin.js.generate.executable.default" to "false",
"kotlin.js.compiler" to JsCompiler.IR.text.toLowerCase()
) )
override fun getConfiguratorSettings(): List<ModuleConfiguratorSetting<*, *>> = override fun getConfiguratorSettings(): List<ModuleConfiguratorSetting<*, *>> =
@@ -154,7 +155,11 @@ abstract class JsSinglePlatformModuleConfigurator :
module: Module module: Module
): List<BuildSystemIR> = irsList { ): List<BuildSystemIR> = irsList {
"kotlin" { "kotlin" {
"js(${reader.settingsValue(module, JSConfigurator.compiler).text})" { val compiler = reader.settingsValue(module, JSConfigurator.compiler)
val param = if (compiler != JsCompiler.IR) {
"(${compiler.text})"
} else ""
"js${param}" {
subTarget(module, reader) subTarget(module, reader)
} }
} }
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatf
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JsBrowserBasedConfigurator.Companion.browserSubTarget import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JsBrowserBasedConfigurator.Companion.browserSubTarget
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JsBrowserBasedConfigurator.Companion.cssSupport import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JsBrowserBasedConfigurator.Companion.cssSupport
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JsNodeBasedConfigurator.Companion.nodejsSubTarget import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JsNodeBasedConfigurator.Companion.nodejsSubTarget
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JsNodeTargetConfigurator.createTargetIrs
import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase
import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.buildSystemType import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.buildSystemType
import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.isGradle import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.isGradle
@@ -78,6 +79,16 @@ internal fun Module.createTargetAccessIr(
interface JsTargetConfigurator : JSConfigurator, TargetConfigurator, SingleCoexistenceTargetConfigurator, ModuleConfiguratorWithSettings interface JsTargetConfigurator : JSConfigurator, TargetConfigurator, SingleCoexistenceTargetConfigurator, ModuleConfiguratorWithSettings
internal fun JsTargetConfigurator.jsCompilerParam(
reader: Reader,
module: Module
) =
reader.settingValue(module, JSConfigurator.compiler)?.let {
if (it != JsCompiler.IR) {
listOf(it.text)
} else emptyList()
} ?: emptyList()
enum class JsTargetKind(override val text: String) : DisplayableSettingItem { enum class JsTargetKind(override val text: String) : DisplayableSettingItem {
LIBRARY(KotlinNewProjectWizardBundle.message("module.configurator.js.target.settings.kind.library")), LIBRARY(KotlinNewProjectWizardBundle.message("module.configurator.js.target.settings.kind.library")),
APPLICATION(KotlinNewProjectWizardBundle.message("module.configurator.js.target.settings.kind.application")) APPLICATION(KotlinNewProjectWizardBundle.message("module.configurator.js.target.settings.kind.application"))
@@ -108,7 +119,7 @@ object JsBrowserTargetConfigurator : JsTargetConfigurator, ModuleConfiguratorWit
+DefaultTargetConfigurationIR( +DefaultTargetConfigurationIR(
module.createTargetAccessIr( module.createTargetAccessIr(
ModuleSubType.js, ModuleSubType.js,
listOf(settingValue(module, JSConfigurator.compiler)?.text) jsCompilerParam(this@createTargetIrs, module)
) )
) { ) {
browserSubTarget(module, this@createTargetIrs) browserSubTarget(module, this@createTargetIrs)
@@ -128,7 +139,7 @@ object JsNodeTargetConfigurator : JsTargetConfigurator {
+DefaultTargetConfigurationIR( +DefaultTargetConfigurationIR(
module.createTargetAccessIr( module.createTargetAccessIr(
ModuleSubType.js, ModuleSubType.js,
listOf(settingValue(module, JSConfigurator.compiler)?.text) jsCompilerParam(this@createTargetIrs, module)
) )
) { ) {
nodejsSubTarget(module, this@createTargetIrs) nodejsSubTarget(module, this@createTargetIrs)