From 20a1ea0413ba84c54d3ae3d8bb04b6804dcbf560 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 3 Sep 2020 19:26:07 +0300 Subject: [PATCH] [Wizard, JS] Change js compiler default ^KT-41656 fixed --- .../jsNodeAndBrowserTargets/build.gradle | 4 ++-- .../jsNodeAndBrowserTargets/build.gradle.kts | 4 ++-- .../simpleMultiplatform/build.gradle | 2 +- .../simpleMultiplatform/build.gradle.kts | 2 +- .../expected/build.gradle | 2 +- .../expected/build.gradle.kts | 2 +- .../expected/build.gradle | 2 +- .../expected/build.gradle.kts | 2 +- .../frontendApplication/build.gradle | 2 +- .../frontendApplication/build.gradle.kts | 2 +- .../fullStackWebApplication/build.gradle | 2 +- .../fullStackWebApplication/build.gradle.kts | 2 +- .../multiplatformLibrary/build.gradle | 2 +- .../multiplatformLibrary/build.gradle.kts | 2 +- .../JsModuleConfigurator.kt | 16 ++++++++++------ .../moduleConfigurators/TargetConfigurator.kt | 19 +++++++------------ 16 files changed, 33 insertions(+), 34 deletions(-) diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/jsNodeAndBrowserTargets/build.gradle b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/jsNodeAndBrowserTargets/build.gradle index 5d1c294cae1..44b026328ad 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/jsNodeAndBrowserTargets/build.gradle +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/jsNodeAndBrowserTargets/build.gradle @@ -11,12 +11,12 @@ repositories { } } kotlin { - js('nodeJs') { + js('nodeJs', LEGACY) { nodejs { binaries.executable() } } - js('browser') { + js('browser', LEGACY) { browser { binaries.executable() webpackTask { diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/jsNodeAndBrowserTargets/build.gradle.kts b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/jsNodeAndBrowserTargets/build.gradle.kts index 9d1def47fe1..99568a430d6 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/jsNodeAndBrowserTargets/build.gradle.kts +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/jsNodeAndBrowserTargets/build.gradle.kts @@ -11,12 +11,12 @@ repositories { } } kotlin { - js("nodeJs") { + js("nodeJs", LEGACY) { nodejs { binaries.executable() } } - js("browser") { + js("browser", LEGACY) { browser { binaries.executable() webpackTask { diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/simpleMultiplatform/build.gradle b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/simpleMultiplatform/build.gradle index 8379c95b296..1d36eb7df9c 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/simpleMultiplatform/build.gradle +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/simpleMultiplatform/build.gradle @@ -16,7 +16,7 @@ kotlin { kotlinOptions.jvmTarget = '9' } } - js('a') { + js('a', LEGACY) { browser { binaries.executable() webpackTask { diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/simpleMultiplatform/build.gradle.kts b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/simpleMultiplatform/build.gradle.kts index 7ea93a530df..74c94adf27f 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/simpleMultiplatform/build.gradle.kts +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/simpleMultiplatform/build.gradle.kts @@ -16,7 +16,7 @@ kotlin { kotlinOptions.jvmTarget = "9" } } - js("a") { + js("a", LEGACY) { browser { binaries.executable() webpackTask { diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/singlePlatformJsBrowser/expected/build.gradle b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/singlePlatformJsBrowser/expected/build.gradle index 325a0153ec6..3f65b01d368 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/singlePlatformJsBrowser/expected/build.gradle +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/singlePlatformJsBrowser/expected/build.gradle @@ -14,7 +14,7 @@ dependencies { testImplementation 'org.jetbrains.kotlin:kotlin-test-js' } kotlin { - js { + js(LEGACY) { browser { binaries.executable() webpackTask { diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/singlePlatformJsBrowser/expected/build.gradle.kts b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/singlePlatformJsBrowser/expected/build.gradle.kts index b11d1110556..14e97f5d338 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/singlePlatformJsBrowser/expected/build.gradle.kts +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/singlePlatformJsBrowser/expected/build.gradle.kts @@ -14,7 +14,7 @@ dependencies { testImplementation(kotlin("test-js")) } kotlin { - js { + js(LEGACY) { browser { binaries.executable() webpackTask { diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/singlePlatformJsNode/expected/build.gradle b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/singlePlatformJsNode/expected/build.gradle index 063a5da7d3a..3df6221bbc5 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/singlePlatformJsNode/expected/build.gradle +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/singlePlatformJsNode/expected/build.gradle @@ -14,7 +14,7 @@ dependencies { testImplementation 'org.jetbrains.kotlin:kotlin-test-js' } kotlin { - js { + js(LEGACY) { nodejs { binaries.executable() } diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/singlePlatformJsNode/expected/build.gradle.kts b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/singlePlatformJsNode/expected/build.gradle.kts index e93518a01ec..073b1ec3615 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/singlePlatformJsNode/expected/build.gradle.kts +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/buildFileGeneration/singlePlatformJsNode/expected/build.gradle.kts @@ -14,7 +14,7 @@ dependencies { testImplementation(kotlin("test-js")) } kotlin { - js { + js(LEGACY) { nodejs { binaries.executable() } diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/frontendApplication/build.gradle b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/frontendApplication/build.gradle index 6a6cce42ce4..bc32b30c665 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/frontendApplication/build.gradle +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/frontendApplication/build.gradle @@ -15,7 +15,7 @@ dependencies { testImplementation 'org.jetbrains.kotlin:kotlin-test-js' } kotlin { - js { + js(LEGACY) { browser { binaries.executable() webpackTask { diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/frontendApplication/build.gradle.kts b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/frontendApplication/build.gradle.kts index e9c68c069e4..5e88e955317 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/frontendApplication/build.gradle.kts +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/frontendApplication/build.gradle.kts @@ -15,7 +15,7 @@ dependencies { testImplementation(kotlin("test-js")) } kotlin { - js { + js(LEGACY) { browser { binaries.executable() webpackTask { diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/fullStackWebApplication/build.gradle b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/fullStackWebApplication/build.gradle index adea41dfe5c..73bc5c001da 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/fullStackWebApplication/build.gradle +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/fullStackWebApplication/build.gradle @@ -30,7 +30,7 @@ kotlin { } withJava() } - js { + js(LEGACY) { browser { binaries.executable() webpackTask { diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/fullStackWebApplication/build.gradle.kts b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/fullStackWebApplication/build.gradle.kts index 83d5489b1b5..c4103decc40 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/fullStackWebApplication/build.gradle.kts +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/fullStackWebApplication/build.gradle.kts @@ -30,7 +30,7 @@ kotlin { } withJava() } - js { + js(LEGACY) { browser { binaries.executable() webpackTask { diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/build.gradle b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/build.gradle index 77f248a3a73..b46c0d0c2c2 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/build.gradle +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/build.gradle @@ -18,7 +18,7 @@ kotlin { kotlinOptions.jvmTarget = '1.8' } } - js { + js(LEGACY) { browser { testTask { useKarma { diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/build.gradle.kts b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/build.gradle.kts index fcbc984028b..d40906149cb 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/build.gradle.kts +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/build.gradle.kts @@ -16,7 +16,7 @@ kotlin { kotlinOptions.jvmTarget = "1.8" } } - js { + js(LEGACY) { browser { testTask { useKarma { diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/JsModuleConfigurator.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/JsModuleConfigurator.kt index 3cba93e6416..0e6dabbdec4 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/JsModuleConfigurator.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/JsModuleConfigurator.kt @@ -19,6 +19,7 @@ import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.GradleIRLi import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.irsList import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.BrowserJsSinglePlatformModuleConfigurator.settingsValue import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JSConfigurator.Companion.isApplication +import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JSConfigurator.Companion.jsCompilerParam 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.JsNodeBasedConfigurator.Companion.nodejsSubTarget @@ -44,7 +45,6 @@ interface JSConfigurator : ModuleConfiguratorWithModuleType, ModuleConfiguratorW GradlePlugin.gradleProperties .addValues( "kotlin.js.generate.executable.default" to "false", - "kotlin.js.compiler" to JsCompiler.IR.text.toLowerCase() ) override fun getConfiguratorSettings(): List> = @@ -72,7 +72,7 @@ interface JSConfigurator : ModuleConfiguratorWithModuleType, ModuleConfiguratorW KotlinNewProjectWizardBundle.message("module.configurator.js.target.settings.compiler"), GenerationPhase.PROJECT_GENERATION ) { - defaultValue = value(JsCompiler.IR) + defaultValue = value(JsCompiler.LEGACY) filter = filter@{ reference, compilerCandidate -> when { reference !is ModuleConfiguratorSettingReference<*, *> -> false @@ -84,6 +84,11 @@ interface JSConfigurator : ModuleConfiguratorWithModuleType, ModuleConfiguratorW } } + internal fun Reader.jsCompilerParam( + module: Module + ): String? = + settingValue(module, compiler)?.text + fun Reader.isApplication(module: Module): Boolean = settingsValue(module, kind) == JsTargetKind.APPLICATION } @@ -156,10 +161,9 @@ abstract class JsSinglePlatformModuleConfigurator : module: Module ): List = irsList { "kotlin" { - val compiler = reader.settingsValue(module, JSConfigurator.compiler) - val param = if (compiler != JsCompiler.IR) { - "(${compiler.text})" - } else "" + val param = reader.jsCompilerParam(module) + ?.let { "($it)" } ?: "" + "js${param}" { subTarget(module, reader) } diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/TargetConfigurator.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/TargetConfigurator.kt index a3a2d2094c2..a893083570c 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/TargetConfigurator.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/TargetConfigurator.kt @@ -16,6 +16,7 @@ import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.GradleStri import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.irsList import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatform.DefaultTargetConfigurationIR import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatform.TargetAccessIR +import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JSConfigurator.Companion.jsCompilerParam 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.JsNodeBasedConfigurator.Companion.nodejsSubTarget @@ -79,16 +80,6 @@ internal fun Module.createTargetAccessIr( 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 { LIBRARY(KotlinNewProjectWizardBundle.message("module.configurator.js.target.settings.kind.library")), APPLICATION(KotlinNewProjectWizardBundle.message("module.configurator.js.target.settings.kind.application")) @@ -119,7 +110,7 @@ object JsBrowserTargetConfigurator : JsTargetConfigurator, ModuleConfiguratorWit +DefaultTargetConfigurationIR( module.createTargetAccessIr( ModuleSubType.js, - jsCompilerParam(this@createTargetIrs, module) + paramsWithJsCompiler(module) ) ) { browserSubTarget(module, this@createTargetIrs) @@ -139,7 +130,7 @@ object JsNodeTargetConfigurator : JsTargetConfigurator { +DefaultTargetConfigurationIR( module.createTargetAccessIr( ModuleSubType.js, - jsCompilerParam(this@createTargetIrs, module) + paramsWithJsCompiler(module) ) ) { nodejsSubTarget(module, this@createTargetIrs) @@ -147,6 +138,10 @@ object JsNodeTargetConfigurator : JsTargetConfigurator { } } +internal fun Reader.paramsWithJsCompiler(module: Module): List = jsCompilerParam(module)?.let { + listOf(it) +} ?: emptyList() + object CommonTargetConfigurator : TargetConfiguratorWithTests(), SimpleTargetConfigurator, SingleCoexistenceTargetConfigurator { override val moduleSubType = ModuleSubType.common override val text: String = KotlinNewProjectWizardBundle.message("module.configurator.common")