[Gradle, JS] Default conpiler type instead of legacy

This commit is contained in:
Ilya Goncharov
2020-02-18 18:40:45 +03:00
parent ae89507736
commit 86e13c25b3
3 changed files with 14 additions and 2 deletions
@@ -98,8 +98,10 @@ open class KotlinJsProjectExtension : KotlinSingleTargetExtension() {
override lateinit var target: KotlinJsTargetDsl override lateinit var target: KotlinJsTargetDsl
internal lateinit var defaultCompilerType: JsCompilerType
open fun js( open fun js(
compiler: JsCompilerType = legacy, compiler: JsCompilerType = defaultCompilerType,
body: KotlinJsTargetDsl.() -> Unit body: KotlinJsTargetDsl.() -> Unit
) { ) {
val target: KotlinJsTargetDsl = when (compiler) { val target: KotlinJsTargetDsl = when (compiler) {
@@ -131,7 +133,7 @@ open class KotlinJsProjectExtension : KotlinSingleTargetExtension() {
open fun js( open fun js(
body: KotlinJsTargetDsl.() -> Unit body: KotlinJsTargetDsl.() -> Unit
) = js(compiler = legacy, body = body) ) = js(compiler = defaultCompilerType, body = body)
@Deprecated("Use js instead", ReplaceWith("js(body)")) @Deprecated("Use js instead", ReplaceWith("js(body)"))
open fun target(body: KotlinJsTargetDsl.() -> Unit) = js(body) open fun target(body: KotlinJsTargetDsl.() -> Unit) = js(body)
@@ -19,6 +19,8 @@ package org.jetbrains.kotlin.gradle.plugin
import org.gradle.api.Project import org.gradle.api.Project
import org.jetbrains.kotlin.gradle.dsl.Coroutines import org.jetbrains.kotlin.gradle.dsl.Coroutines
import org.jetbrains.kotlin.gradle.dsl.NativeCacheKind import org.jetbrains.kotlin.gradle.dsl.NativeCacheKind
import org.jetbrains.kotlin.gradle.plugin.JsCompilerType
import org.jetbrains.kotlin.gradle.plugin.JsCompilerType.Companion.jsCompilerProperty
import org.jetbrains.kotlin.gradle.targets.native.DisabledNativeTargetsReporter import org.jetbrains.kotlin.gradle.targets.native.DisabledNativeTargetsReporter
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
@@ -168,6 +170,12 @@ internal class PropertiesProvider private constructor(private val project: Proje
val jsDiscoverTypes: Boolean? val jsDiscoverTypes: Boolean?
get() = booleanProperty("kotlin.js.experimental.discoverTypes") get() = booleanProperty("kotlin.js.experimental.discoverTypes")
/**
* Use Kotlin/JS backend mode
*/
val jsCompiler: JsCompilerType
get() = property(jsCompilerProperty)?.let { JsCompilerType.byArgument(it) } ?: JsCompilerType.legacy
private fun propertyWithDeprecatedVariant(propName: String, deprecatedPropName: String): String? { private fun propertyWithDeprecatedVariant(propName: String, deprecatedPropName: String): String? {
val deprecatedProperty = property(deprecatedPropName) val deprecatedProperty = property(deprecatedPropName)
if (deprecatedProperty != null) { if (deprecatedProperty != null) {
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinJsProjectExtension
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.MAIN_COMPILATION_NAME import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.MAIN_COMPILATION_NAME
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.TEST_COMPILATION_NAME import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.TEST_COMPILATION_NAME
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider
import org.jetbrains.kotlin.gradle.plugin.configureDefaultVersionsResolutionStrategy import org.jetbrains.kotlin.gradle.plugin.configureDefaultVersionsResolutionStrategy
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsSingleTargetPreset import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsSingleTargetPreset
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrSingleTargetPreset import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrSingleTargetPreset
@@ -35,6 +36,7 @@ open class KotlinJsPlugin(
kotlinExtension.apply { kotlinExtension.apply {
irPreset = KotlinJsIrSingleTargetPreset(project, kotlinPluginVersion) irPreset = KotlinJsIrSingleTargetPreset(project, kotlinPluginVersion)
legacyPreset = KotlinJsSingleTargetPreset(project, kotlinPluginVersion) legacyPreset = KotlinJsSingleTargetPreset(project, kotlinPluginVersion)
defaultCompilerType = PropertiesProvider(project).jsCompiler
} }
// Explicitly create configurations for main and test // Explicitly create configurations for main and test