[K/JS] Introduce v2015 target
This commit is contained in:
@@ -336,7 +336,7 @@ public abstract interface class org/jetbrains/kotlin/gradle/dsl/KotlinJsOptions
|
||||
public abstract fun getSourceMapPrefix ()Ljava/lang/String;
|
||||
public abstract fun getTarget ()Ljava/lang/String;
|
||||
public abstract fun getTypedArrays ()Z
|
||||
public abstract fun getUseEsClasses ()Z
|
||||
public abstract fun getUseEsClasses ()Ljava/lang/Boolean;
|
||||
public abstract fun setFriendModulesDisabled (Z)V
|
||||
public abstract fun setMain (Ljava/lang/String;)V
|
||||
public abstract fun setMetaInfo (Z)V
|
||||
@@ -349,7 +349,7 @@ public abstract interface class org/jetbrains/kotlin/gradle/dsl/KotlinJsOptions
|
||||
public abstract fun setSourceMapPrefix (Ljava/lang/String;)V
|
||||
public abstract fun setTarget (Ljava/lang/String;)V
|
||||
public abstract fun setTypedArrays (Z)V
|
||||
public abstract fun setUseEsClasses (Z)V
|
||||
public abstract fun setUseEsClasses (Ljava/lang/Boolean;)V
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/dsl/KotlinJsOptions$DefaultImpls {
|
||||
@@ -370,7 +370,7 @@ public final class org/jetbrains/kotlin/gradle/dsl/KotlinJsOptions$DefaultImpls
|
||||
public static fun getSuppressWarnings (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;)Z
|
||||
public static fun getTarget (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;)Ljava/lang/String;
|
||||
public static fun getTypedArrays (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;)Z
|
||||
public static fun getUseEsClasses (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;)Z
|
||||
public static fun getUseEsClasses (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;)Ljava/lang/Boolean;
|
||||
public static fun getUseK2 (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;)Z
|
||||
public static fun getVerbose (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;)Z
|
||||
public static fun setAllWarningsAsErrors (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;Z)V
|
||||
@@ -390,7 +390,7 @@ public final class org/jetbrains/kotlin/gradle/dsl/KotlinJsOptions$DefaultImpls
|
||||
public static fun setSuppressWarnings (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;Z)V
|
||||
public static fun setTarget (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;Ljava/lang/String;)V
|
||||
public static fun setTypedArrays (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;Z)V
|
||||
public static fun setUseEsClasses (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;Z)V
|
||||
public static fun setUseEsClasses (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;Ljava/lang/Boolean;)V
|
||||
public static fun setUseK2 (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;Z)V
|
||||
public static fun setVerbose (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;Z)V
|
||||
}
|
||||
|
||||
+8
-6
@@ -38,12 +38,13 @@ interface KotlinJsCompilerOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommon
|
||||
val metaInfo: org.gradle.api.provider.Property<kotlin.Boolean>
|
||||
|
||||
/**
|
||||
* The kind of JS module generated by the compiler.
|
||||
* The kind of JS module generated by the compiler. ES modules are enabled by default in case of ES2015 target usage
|
||||
*
|
||||
* Possible values: "plain", "amd", "commonjs", "umd"
|
||||
*
|
||||
* Default value: JsModuleKind.MODULE_PLAIN
|
||||
* Default value: null
|
||||
*/
|
||||
@get:org.gradle.api.tasks.Optional
|
||||
@get:org.gradle.api.tasks.Input
|
||||
val moduleKind: org.gradle.api.provider.Property<org.jetbrains.kotlin.gradle.dsl.JsModuleKind>
|
||||
|
||||
@@ -107,9 +108,9 @@ interface KotlinJsCompilerOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommon
|
||||
/**
|
||||
* Generate JS files for the specified ECMA version.
|
||||
*
|
||||
* Possible values: "v5"
|
||||
* Possible values: "es5", "es2015"
|
||||
*
|
||||
* Default value: "v5"
|
||||
* Default value: "es5"
|
||||
*/
|
||||
@get:org.gradle.api.tasks.Input
|
||||
val target: org.gradle.api.provider.Property<kotlin.String>
|
||||
@@ -123,10 +124,11 @@ interface KotlinJsCompilerOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommon
|
||||
val typedArrays: org.gradle.api.provider.Property<kotlin.Boolean>
|
||||
|
||||
/**
|
||||
* Let generated JavaScript code use ES2015 classes.
|
||||
* Let generated JavaScript code use ES2015 classes. Enabled by default in case of ES2015 target usage
|
||||
*
|
||||
* Default value: false
|
||||
* Default value: null
|
||||
*/
|
||||
@get:org.gradle.api.tasks.Optional
|
||||
@get:org.gradle.api.tasks.Input
|
||||
val useEsClasses: org.gradle.api.provider.Property<kotlin.Boolean>
|
||||
}
|
||||
|
||||
+12
-12
@@ -51,19 +51,19 @@ interface KotlinJsOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
||||
get() = options.metaInfo.get()
|
||||
set(value) = options.metaInfo.set(value)
|
||||
|
||||
private val kotlin.String.moduleKindCompilerOption get() = org.jetbrains.kotlin.gradle.dsl.JsModuleKind.fromKind(this)
|
||||
private val kotlin.String?.moduleKindCompilerOption get() = this?.let { org.jetbrains.kotlin.gradle.dsl.JsModuleKind.fromKind(it) }
|
||||
|
||||
private val org.jetbrains.kotlin.gradle.dsl.JsModuleKind.moduleKindKotlinOption get() = this.kind
|
||||
private val org.jetbrains.kotlin.gradle.dsl.JsModuleKind?.moduleKindKotlinOption get() = this?.kind
|
||||
|
||||
/**
|
||||
* The kind of JS module generated by the compiler.
|
||||
* The kind of JS module generated by the compiler. ES modules are enabled by default in case of ES2015 target usage
|
||||
*
|
||||
* Possible values: "plain", "amd", "commonjs", "umd"
|
||||
*
|
||||
* Default value: JsModuleKind.MODULE_PLAIN
|
||||
* Default value: null
|
||||
*/
|
||||
var moduleKind: kotlin.String
|
||||
get() = options.moduleKind.get().moduleKindKotlinOption
|
||||
var moduleKind: kotlin.String?
|
||||
get() = options.moduleKind.orNull.moduleKindKotlinOption
|
||||
set(value) = options.moduleKind.set(value.moduleKindCompilerOption)
|
||||
|
||||
/**
|
||||
@@ -136,9 +136,9 @@ interface KotlinJsOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
||||
/**
|
||||
* Generate JS files for the specified ECMA version.
|
||||
*
|
||||
* Possible values: "v5"
|
||||
* Possible values: "es5", "es2015"
|
||||
*
|
||||
* Default value: "v5"
|
||||
* Default value: "es5"
|
||||
*/
|
||||
var target: kotlin.String
|
||||
get() = options.target.get()
|
||||
@@ -154,11 +154,11 @@ interface KotlinJsOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
||||
set(value) = options.typedArrays.set(value)
|
||||
|
||||
/**
|
||||
* Let generated JavaScript code use ES2015 classes.
|
||||
* Let generated JavaScript code use ES2015 classes. Enabled by default in case of ES2015 target usage
|
||||
*
|
||||
* Default value: false
|
||||
* Default value: null
|
||||
*/
|
||||
var useEsClasses: kotlin.Boolean
|
||||
get() = options.useEsClasses.get()
|
||||
var useEsClasses: kotlin.Boolean?
|
||||
get() = options.useEsClasses.orNull
|
||||
set(value) = options.useEsClasses.set(value)
|
||||
}
|
||||
|
||||
+3
-3
@@ -20,7 +20,7 @@ internal abstract class KotlinJsCompilerOptionsDefault @javax.inject.Inject cons
|
||||
objectFactory.property(kotlin.Boolean::class.java).convention(true)
|
||||
|
||||
override val moduleKind: org.gradle.api.provider.Property<org.jetbrains.kotlin.gradle.dsl.JsModuleKind> =
|
||||
objectFactory.property(org.jetbrains.kotlin.gradle.dsl.JsModuleKind::class.java).convention(org.jetbrains.kotlin.gradle.dsl.JsModuleKind.MODULE_PLAIN)
|
||||
objectFactory.property(org.jetbrains.kotlin.gradle.dsl.JsModuleKind::class.java)
|
||||
|
||||
override val moduleName: org.gradle.api.provider.Property<kotlin.String> =
|
||||
objectFactory.property(kotlin.String::class.java)
|
||||
@@ -42,11 +42,11 @@ internal abstract class KotlinJsCompilerOptionsDefault @javax.inject.Inject cons
|
||||
objectFactory.property(kotlin.String::class.java)
|
||||
|
||||
override val target: org.gradle.api.provider.Property<kotlin.String> =
|
||||
objectFactory.property(kotlin.String::class.java).convention("v5")
|
||||
objectFactory.property(kotlin.String::class.java).convention("es5")
|
||||
|
||||
override val typedArrays: org.gradle.api.provider.Property<kotlin.Boolean> =
|
||||
objectFactory.property(kotlin.Boolean::class.java).convention(true)
|
||||
|
||||
override val useEsClasses: org.gradle.api.provider.Property<kotlin.Boolean> =
|
||||
objectFactory.property(kotlin.Boolean::class.java).convention(false)
|
||||
objectFactory.property(kotlin.Boolean::class.java)
|
||||
}
|
||||
|
||||
+2
-2
@@ -15,7 +15,7 @@ internal object KotlinJsCompilerOptionsHelper {
|
||||
args.friendModulesDisabled = from.friendModulesDisabled.get()
|
||||
args.main = from.main.get().mode
|
||||
args.metaInfo = from.metaInfo.get()
|
||||
args.moduleKind = from.moduleKind.get().kind
|
||||
args.moduleKind = from.moduleKind.orNull?.kind
|
||||
args.moduleName = from.moduleName.orNull
|
||||
args.noStdlib = from.noStdlib.get()
|
||||
args.sourceMap = from.sourceMap.get()
|
||||
@@ -24,7 +24,7 @@ internal object KotlinJsCompilerOptionsHelper {
|
||||
args.sourceMapPrefix = from.sourceMapPrefix.orNull
|
||||
args.target = from.target.get()
|
||||
args.typedArrays = from.typedArrays.get()
|
||||
args.useEsClasses = from.useEsClasses.get()
|
||||
args.useEsClasses = from.useEsClasses.orNull
|
||||
}
|
||||
|
||||
internal fun syncOptionsAsConvention(
|
||||
|
||||
+21
-10
@@ -3,7 +3,7 @@
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
@file:Suppress("PackageDirectoryMismatch")
|
||||
@file:Suppress("PackageDirectoryMismatch", "DEPRECATION", "TYPEALIAS_EXPANSION_DEPRECATION")
|
||||
|
||||
// Old package for compatibility
|
||||
package org.jetbrains.kotlin.gradle.plugin.mpp
|
||||
@@ -13,8 +13,12 @@ import org.gradle.api.Action
|
||||
import org.gradle.api.attributes.AttributeContainer
|
||||
import org.gradle.api.provider.Provider
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.jetbrains.kotlin.gradle.dsl.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JsArgumentConstants
|
||||
import org.jetbrains.kotlin.gradle.dsl.JsModuleKind
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptions
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions
|
||||
import org.jetbrains.kotlin.gradle.plugin.DeprecatedHasCompilerOptions
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
|
||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl
|
||||
import org.jetbrains.kotlin.gradle.targets.js.ir.JsBinary
|
||||
@@ -23,7 +27,6 @@ import org.jetbrains.kotlin.gradle.targets.js.npm.PackageJson
|
||||
import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
|
||||
import javax.inject.Inject
|
||||
|
||||
@Suppress("TYPEALIAS_EXPANSION_DEPRECATION", "DEPRECATION")
|
||||
open class KotlinJsCompilation @Inject internal constructor(
|
||||
compilation: KotlinCompilationImpl,
|
||||
) : DeprecatedAbstractKotlinCompilationToRunnableFiles<KotlinJsOptions>(compilation),
|
||||
@@ -102,11 +105,19 @@ val KotlinJsCompilation.fileExtension: Provider<String>
|
||||
get() {
|
||||
val isWasm = platformType == KotlinPlatformType.wasm
|
||||
@Suppress("DEPRECATION")
|
||||
return compilerOptions.options.moduleKind.map { moduleKind ->
|
||||
if (isWasm || moduleKind == JsModuleKind.MODULE_ES) {
|
||||
"mjs"
|
||||
} else {
|
||||
"js"
|
||||
return compilerOptions.options.moduleKind
|
||||
.orElse(
|
||||
compilerOptions.options.target.map {
|
||||
if (it == K2JsArgumentConstants.ES_2015) {
|
||||
JsModuleKind.MODULE_ES
|
||||
} else JsModuleKind.MODULE_UMD
|
||||
}
|
||||
)
|
||||
.map { moduleKind ->
|
||||
if (isWasm || moduleKind == JsModuleKind.MODULE_ES) {
|
||||
"mjs"
|
||||
} else {
|
||||
"js"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+7
-1
@@ -13,6 +13,7 @@ import org.gradle.api.provider.Property
|
||||
import org.gradle.api.provider.Provider
|
||||
import org.gradle.api.tasks.Copy
|
||||
import org.gradle.language.base.plugins.LifecycleBasePlugin
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JsArgumentConstants.ES_2015
|
||||
import org.jetbrains.kotlin.gradle.dsl.JsModuleKind
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsDce
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
||||
@@ -34,6 +35,7 @@ import org.jetbrains.kotlin.gradle.utils.doNotTrackStateCompat
|
||||
import org.jetbrains.kotlin.gradle.utils.domainObjectSet
|
||||
import org.jetbrains.kotlin.gradle.utils.relativeOrAbsolute
|
||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.runIf
|
||||
import javax.inject.Inject
|
||||
|
||||
abstract class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
||||
@@ -274,7 +276,11 @@ abstract class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
||||
this.inputFilesDirectory.set(inputFilesDirectory)
|
||||
|
||||
val platformType = binary.compilation.platformType
|
||||
val moduleKind = binary.linkTask.flatMap { it.compilerOptions.moduleKind }
|
||||
val moduleKind = binary.linkTask.flatMap { task ->
|
||||
task.compilerOptions.moduleKind.orElse(task.compilerOptions.target.map {
|
||||
if (it == ES_2015) JsModuleKind.MODULE_ES else JsModuleKind.MODULE_UMD
|
||||
})
|
||||
}
|
||||
|
||||
this.entryModuleName.set(entryModuleName)
|
||||
this.esModules.convention(
|
||||
|
||||
-2
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.targets.js.ir
|
||||
|
||||
import org.jetbrains.kotlin.gradle.dsl.JsModuleKind
|
||||
import org.jetbrains.kotlin.gradle.dsl.JsSourceMapEmbedMode
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptions
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinOnlyTargetConfigurator
|
||||
@@ -15,7 +14,6 @@ open class KotlinJsIrTargetConfigurator :
|
||||
|
||||
internal companion object {
|
||||
internal fun KotlinJsCompilerOptions.configureJsDefaultOptions() {
|
||||
moduleKind.convention(JsModuleKind.MODULE_UMD)
|
||||
sourceMap.convention(true)
|
||||
sourceMapEmbedSources.convention(JsSourceMapEmbedMode.SOURCE_MAP_SOURCE_CONTENT_NEVER)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user