From f4cda71d9e825c53605b40fd6f702ebafc7765ba Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Wed, 18 Jan 2023 16:26:21 +0100 Subject: [PATCH] [Gradle, JS] Add possibility to not add js compiler attribute on publish --- .../kotlin/gradle/plugin/KotlinTargetConfigurator.kt | 6 ++++-- .../jetbrains/kotlin/gradle/plugin/PropertiesProvider.kt | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetConfigurator.kt index b9fe2b60b40..02a2ffa97ad 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetConfigurator.kt @@ -425,11 +425,13 @@ fun Configuration.usesPlatformOf(target: KotlinTarget): Configuration { else -> setJavaTargetEnvironmentAttributeIfSupported(target.project, "non-jvm") } - if (target is KotlinJsTarget) { + val publishJsCompilerAttribute = PropertiesProvider(target.project).publishJsCompilerAttribute + + if (publishJsCompilerAttribute && target is KotlinJsTarget) { attributes.attribute(KotlinJsCompilerAttribute.jsCompilerAttribute, KotlinJsCompilerAttribute.legacy) } - if (target is KotlinJsIrTarget && target.platformType == KotlinPlatformType.js) { + if (publishJsCompilerAttribute && target is KotlinJsIrTarget && target.platformType == KotlinPlatformType.js) { attributes.attribute(KotlinJsCompilerAttribute.jsCompilerAttribute, KotlinJsCompilerAttribute.ir) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/PropertiesProvider.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/PropertiesProvider.kt index 57720b84fa8..2c9a684d148 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/PropertiesProvider.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/PropertiesProvider.kt @@ -430,6 +430,12 @@ internal class PropertiesProvider private constructor(private val project: Proje val jsCompiler: KotlinJsCompilerType? get() = this.property(jsCompilerProperty)?.let { KotlinJsCompilerType.byArgumentOrNull(it) } + /** + * Use Kotlin/JS backend compiler publishing attribute + */ + val publishJsCompilerAttribute: Boolean + get() = this.booleanProperty("$jsCompilerProperty.publish.attribute") ?: true + /** * Use Webpack 4 for compatibility */