diff --git a/compiler/cli/cli-common/gen/org/jetbrains/kotlin/cli/common/arguments/K2JSCompilerArgumentsCopyGenerated.kt b/compiler/cli/cli-common/gen/org/jetbrains/kotlin/cli/common/arguments/K2JSCompilerArgumentsCopyGenerated.kt index 163e89c80e8..e2e50a7f0c3 100644 --- a/compiler/cli/cli-common/gen/org/jetbrains/kotlin/cli/common/arguments/K2JSCompilerArgumentsCopyGenerated.kt +++ b/compiler/cli/cli-common/gen/org/jetbrains/kotlin/cli/common/arguments/K2JSCompilerArgumentsCopyGenerated.kt @@ -47,6 +47,7 @@ fun copyK2JSCompilerArguments(from: K2JSCompilerArguments, to: K2JSCompilerArgum to.metaInfo = from.metaInfo to.moduleKind = from.moduleKind to.moduleName = from.moduleName + to.noStdlib = from.noStdlib to.optimizeGeneratedJs = from.optimizeGeneratedJs to.outputDir = from.outputDir to.outputFile = from.outputFile diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JSCompilerArguments.kt b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JSCompilerArguments.kt index 9af4de0957c..71ca8da8f04 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JSCompilerArguments.kt +++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JSCompilerArguments.kt @@ -43,6 +43,23 @@ class K2JSCompilerArguments : CommonCompilerArguments() { field = if (value.isNullOrEmpty()) null else value } + @GradleOption( + value = DefaultValue.BOOLEAN_TRUE_DEFAULT, + gradleInputType = GradleInputTypes.INPUT, + shouldGenerateDeprecatedKotlinOptions = true, + ) + @GradleDeprecatedOption( + message = "Only for legacy backend.", + level = DeprecationLevel.WARNING, + removeAfter = "2.0.0" + ) + @Argument(value = "-no-stdlib", description = "Don't automatically include the default Kotlin/JS stdlib in compilation dependencies.") + var noStdlib = false + set(value) { + checkFrozen() + field = value + } + @Argument( value = "-libraries", valueDescription = "", @@ -126,6 +143,16 @@ class K2JSCompilerArguments : CommonCompilerArguments() { field = if (value.isNullOrEmpty()) null else value } + @GradleOption( + value = DefaultValue.BOOLEAN_TRUE_DEFAULT, + gradleInputType = GradleInputTypes.INPUT, + shouldGenerateDeprecatedKotlinOptions = true, + ) + @GradleDeprecatedOption( + message = "Only for legacy backend.", + level = DeprecationLevel.WARNING, + removeAfter = "2.0.0" + ) @Deprecated("It is senseless to use with IR compiler. Only for compatibility.") @Argument(value = "-meta-info", description = "Generate .meta.js and .kjsm files with metadata. Use this to create a library.") var metaInfo = false diff --git a/compiler/testData/cli/js/jsHelp.out b/compiler/testData/cli/js/jsHelp.out index d0bc2335498..6c3c63d9c43 100644 --- a/compiler/testData/cli/js/jsHelp.out +++ b/compiler/testData/cli/js/jsHelp.out @@ -6,6 +6,7 @@ where possible options include: -module-kind {plain|amd|commonjs|umd|es} The kind of JS module generated by the compiler. -ir-output-name Base name of generated files. + -no-stdlib Don't automatically include the default Kotlin/JS stdlib in compilation dependencies. -ir-output-dir Destination for generated files. -output Destination *.js file for the compilation result. -source-map Generate a source map. diff --git a/libraries/tools/kotlin-gradle-plugin-api/api/kotlin-gradle-plugin-api.api b/libraries/tools/kotlin-gradle-plugin-api/api/kotlin-gradle-plugin-api.api index 0bbfa22aa67..a2be5add4a7 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/api/kotlin-gradle-plugin-api.api +++ b/libraries/tools/kotlin-gradle-plugin-api/api/kotlin-gradle-plugin-api.api @@ -280,8 +280,10 @@ public abstract interface class org/jetbrains/kotlin/gradle/dsl/KotlinHierarchyD public abstract interface class org/jetbrains/kotlin/gradle/dsl/KotlinJsCompilerOptions : org/jetbrains/kotlin/gradle/dsl/KotlinCommonCompilerOptions { public abstract fun getFriendModulesDisabled ()Lorg/gradle/api/provider/Property; public abstract fun getMain ()Lorg/gradle/api/provider/Property; + public abstract fun getMetaInfo ()Lorg/gradle/api/provider/Property; public abstract fun getModuleKind ()Lorg/gradle/api/provider/Property; public abstract fun getModuleName ()Lorg/gradle/api/provider/Property; + public abstract fun getNoStdlib ()Lorg/gradle/api/provider/Property; public abstract fun getSourceMap ()Lorg/gradle/api/provider/Property; public abstract fun getSourceMapEmbedSources ()Lorg/gradle/api/provider/Property; public abstract fun getSourceMapNamesPolicy ()Lorg/gradle/api/provider/Property; @@ -322,8 +324,10 @@ public final class org/jetbrains/kotlin/gradle/dsl/KotlinJsDceOptions$DefaultImp public abstract interface class org/jetbrains/kotlin/gradle/dsl/KotlinJsOptions : org/jetbrains/kotlin/gradle/dsl/KotlinCommonOptions { public abstract fun getFriendModulesDisabled ()Z public abstract fun getMain ()Ljava/lang/String; + public abstract fun getMetaInfo ()Z public abstract fun getModuleKind ()Ljava/lang/String; public abstract fun getModuleName ()Ljava/lang/String; + public abstract fun getNoStdlib ()Z public abstract fun getOptions ()Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsCompilerOptions; public abstract fun getSourceMap ()Z public abstract fun getSourceMapEmbedSources ()Ljava/lang/String; @@ -334,8 +338,10 @@ public abstract interface class org/jetbrains/kotlin/gradle/dsl/KotlinJsOptions public abstract fun getUseEsClasses ()Z public abstract fun setFriendModulesDisabled (Z)V public abstract fun setMain (Ljava/lang/String;)V + public abstract fun setMetaInfo (Z)V public abstract fun setModuleKind (Ljava/lang/String;)V public abstract fun setModuleName (Ljava/lang/String;)V + public abstract fun setNoStdlib (Z)V public abstract fun setSourceMap (Z)V public abstract fun setSourceMapEmbedSources (Ljava/lang/String;)V public abstract fun setSourceMapNamesPolicy (Ljava/lang/String;)V @@ -352,8 +358,10 @@ public final class org/jetbrains/kotlin/gradle/dsl/KotlinJsOptions$DefaultImpls public static fun getFriendModulesDisabled (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;)Z public static fun getLanguageVersion (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;)Ljava/lang/String; public static fun getMain (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;)Ljava/lang/String; + public static fun getMetaInfo (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;)Z public static fun getModuleKind (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;)Ljava/lang/String; public static fun getModuleName (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;)Ljava/lang/String; + public static fun getNoStdlib (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;)Z public static fun getSourceMap (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;)Z public static fun getSourceMapEmbedSources (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;)Ljava/lang/String; public static fun getSourceMapNamesPolicy (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;)Ljava/lang/String; @@ -370,8 +378,10 @@ public final class org/jetbrains/kotlin/gradle/dsl/KotlinJsOptions$DefaultImpls public static fun setFriendModulesDisabled (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;Z)V public static fun setLanguageVersion (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;Ljava/lang/String;)V public static fun setMain (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;Ljava/lang/String;)V + public static fun setMetaInfo (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;Z)V public static fun setModuleKind (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;Ljava/lang/String;)V public static fun setModuleName (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;Ljava/lang/String;)V + public static fun setNoStdlib (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;Z)V public static fun setSourceMap (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;Z)V public static fun setSourceMapEmbedSources (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;Ljava/lang/String;)V public static fun setSourceMapNamesPolicy (Lorg/jetbrains/kotlin/gradle/dsl/KotlinJsOptions;Ljava/lang/String;)V diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsCompilerOptions.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsCompilerOptions.kt index 4cd9a20726e..7da32b6266a 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsCompilerOptions.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsCompilerOptions.kt @@ -28,6 +28,15 @@ interface KotlinJsCompilerOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommon @get:org.gradle.api.tasks.Input val main: org.gradle.api.provider.Property + /** + * Generate .meta.js and .kjsm files with metadata. Use this to create a library. + * + * Default value: true + */ + @Deprecated(message = "Only for legacy backend.", level = DeprecationLevel.WARNING) + @get:org.gradle.api.tasks.Input + val metaInfo: org.gradle.api.provider.Property + /** * The kind of JS module generated by the compiler. * @@ -47,6 +56,15 @@ interface KotlinJsCompilerOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommon @get:org.gradle.api.tasks.Input val moduleName: org.gradle.api.provider.Property + /** + * Don't automatically include the default Kotlin/JS stdlib in compilation dependencies. + * + * Default value: true + */ + @Deprecated(message = "Only for legacy backend.", level = DeprecationLevel.WARNING) + @get:org.gradle.api.tasks.Input + val noStdlib: org.gradle.api.provider.Property + /** * Generate a source map. * diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsOptions.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsOptions.kt index 3acd780f9ce..ce6ff689b59 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsOptions.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsOptions.kt @@ -38,6 +38,16 @@ interface KotlinJsOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions get() = options.main.get().mainKotlinOption set(value) = options.main.set(value.mainCompilerOption) + /** + * Generate .meta.js and .kjsm files with metadata. Use this to create a library. + * + * Default value: true + */ + @Deprecated(message = "Only for legacy backend.", level = DeprecationLevel.WARNING) + var metaInfo: kotlin.Boolean + 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 org.jetbrains.kotlin.gradle.dsl.JsModuleKind.moduleKindKotlinOption get() = this.kind @@ -62,6 +72,16 @@ interface KotlinJsOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions get() = options.moduleName.orNull set(value) = options.moduleName.set(value) + /** + * Don't automatically include the default Kotlin/JS stdlib in compilation dependencies. + * + * Default value: true + */ + @Deprecated(message = "Only for legacy backend.", level = DeprecationLevel.WARNING) + var noStdlib: kotlin.Boolean + get() = options.noStdlib.get() + set(value) = options.noStdlib.set(value) + /** * Generate a source map. * diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsCompilerOptionsDefault.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsCompilerOptionsDefault.kt index 3d0c9b986eb..826cf4d21f9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsCompilerOptionsDefault.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsCompilerOptionsDefault.kt @@ -15,12 +15,20 @@ internal abstract class KotlinJsCompilerOptionsDefault @javax.inject.Inject cons override val main: org.gradle.api.provider.Property = objectFactory.property(org.jetbrains.kotlin.gradle.dsl.JsMainFunctionExecutionMode::class.java).convention(org.jetbrains.kotlin.gradle.dsl.JsMainFunctionExecutionMode.CALL) + @Deprecated(message = "Only for legacy backend.", level = DeprecationLevel.WARNING) + override val metaInfo: org.gradle.api.provider.Property = + objectFactory.property(kotlin.Boolean::class.java).convention(true) + override val moduleKind: org.gradle.api.provider.Property = objectFactory.property(org.jetbrains.kotlin.gradle.dsl.JsModuleKind::class.java).convention(org.jetbrains.kotlin.gradle.dsl.JsModuleKind.MODULE_PLAIN) override val moduleName: org.gradle.api.provider.Property = objectFactory.property(kotlin.String::class.java) + @Deprecated(message = "Only for legacy backend.", level = DeprecationLevel.WARNING) + override val noStdlib: org.gradle.api.provider.Property = + objectFactory.property(kotlin.Boolean::class.java).convention(true) + override val sourceMap: org.gradle.api.provider.Property = objectFactory.property(kotlin.Boolean::class.java).convention(false) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsCompilerOptionsHelper.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsCompilerOptionsHelper.kt index a1c7a13357e..551a811c5b2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsCompilerOptionsHelper.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsCompilerOptionsHelper.kt @@ -14,8 +14,10 @@ internal object KotlinJsCompilerOptionsHelper { org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.fillCompilerArguments(from, args) args.friendModulesDisabled = from.friendModulesDisabled.get() args.main = from.main.get().mode + args.metaInfo = from.metaInfo.get() args.moduleKind = from.moduleKind.get().kind args.moduleName = from.moduleName.orNull + args.noStdlib = from.noStdlib.get() args.sourceMap = from.sourceMap.get() args.sourceMapEmbedSources = from.sourceMapEmbedSources.orNull?.mode args.sourceMapNamesPolicy = from.sourceMapNamesPolicy.orNull?.policy @@ -32,8 +34,10 @@ internal object KotlinJsCompilerOptionsHelper { org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.syncOptionsAsConvention(from, into) into.friendModulesDisabled.convention(from.friendModulesDisabled) into.main.convention(from.main) + into.metaInfo.convention(from.metaInfo) into.moduleKind.convention(from.moduleKind) into.moduleName.convention(from.moduleName) + into.noStdlib.convention(from.noStdlib) into.sourceMap.convention(from.sourceMap) into.sourceMapEmbedSources.convention(from.sourceMapEmbedSources) into.sourceMapNamesPolicy.convention(from.sourceMapNamesPolicy)