From dcc71e77f3512b1df31df9104319ffbe9cd19b92 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Tue, 21 Mar 2023 23:00:22 +0100 Subject: [PATCH] [stdlib-mpp] Specify configuration attributes for stdlib-js variant disambiguation #KT-56106 --- js/js.tests/build.gradle.kts | 3 +++ libraries/kotlin.test/js-ir/it/build.gradle.kts | 5 ++++- libraries/kotlin.test/js/build.gradle | 5 +++++ libraries/kotlin.test/js/it/build.gradle | 9 +++++++++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/js/js.tests/build.gradle.kts b/js/js.tests/build.gradle.kts index accf5fdb93f..69f5b50e505 100644 --- a/js/js.tests/build.gradle.kts +++ b/js/js.tests/build.gradle.kts @@ -4,6 +4,7 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages import org.jetbrains.kotlin.ideaExt.idea import org.apache.tools.ant.filters.FixCrLfFilter +import org.jetbrains.kotlin.gradle.targets.js.KotlinJsCompilerAttribute import java.util.Properties plugins { @@ -24,8 +25,10 @@ node { val antLauncherJar by configurations.creating val testJsRuntime by configurations.creating { attributes { + attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.LIBRARY)) attribute(Usage.USAGE_ATTRIBUTE, objects.named(KotlinUsages.KOTLIN_RUNTIME)) attribute(KotlinPlatformType.attribute, KotlinPlatformType.js) + attribute(KotlinJsCompilerAttribute.jsCompilerAttribute, KotlinJsCompilerAttribute.legacy) } } diff --git a/libraries/kotlin.test/js-ir/it/build.gradle.kts b/libraries/kotlin.test/js-ir/it/build.gradle.kts index 3598b33c2a3..f3ec488fde4 100644 --- a/libraries/kotlin.test/js-ir/it/build.gradle.kts +++ b/libraries/kotlin.test/js-ir/it/build.gradle.kts @@ -1,6 +1,7 @@ import com.github.gradle.node.npm.task.NpmTask import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages +import org.jetbrains.kotlin.gradle.targets.js.KotlinJsCompilerAttribute import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrLink import java.io.FileOutputStream @@ -47,8 +48,10 @@ kotlin { val nodeModules by configurations.registering { extendsFrom(configurations["api"]) attributes { - attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage::class.java, KotlinUsages.KOTLIN_RUNTIME)) + attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.LIBRARY)) + attribute(Usage.USAGE_ATTRIBUTE, objects.named(KotlinUsages.KOTLIN_RUNTIME)) attribute(KotlinPlatformType.attribute, KotlinPlatformType.js) + attribute(KotlinJsCompilerAttribute.jsCompilerAttribute, KotlinJsCompilerAttribute.ir) } } diff --git a/libraries/kotlin.test/js/build.gradle b/libraries/kotlin.test/js/build.gradle index ed26ba24232..1ec1e305a85 100644 --- a/libraries/kotlin.test/js/build.gradle +++ b/libraries/kotlin.test/js/build.gradle @@ -5,6 +5,11 @@ apply plugin: 'kotlin-platform-js' configurations { distJs distLibrary + [compileClasspath, testCompileClasspath, testRuntimeClasspath].forEach { + it.attributes { + attribute(org.jetbrains.kotlin.gradle.targets.js.KotlinJsCompilerAttribute.jsCompilerAttribute, org.jetbrains.kotlin.gradle.targets.js.KotlinJsCompilerAttribute.legacy) + } + } } dependencies { diff --git a/libraries/kotlin.test/js/it/build.gradle b/libraries/kotlin.test/js/it/build.gradle index 3c8760d016b..7aa280fd8cb 100644 --- a/libraries/kotlin.test/js/it/build.gradle +++ b/libraries/kotlin.test/js/it/build.gradle @@ -1,5 +1,6 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages +import org.jetbrains.kotlin.gradle.targets.js.KotlinJsCompilerAttribute plugins { id "com.github.node-gradle.node" version "5.0.0" @@ -13,8 +14,15 @@ configurations { nodeModules { extendsFrom api attributes { + attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, Category.LIBRARY)) attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage, KotlinUsages.KOTLIN_RUNTIME)) attribute(KotlinPlatformType.attribute, KotlinPlatformType.js) + attribute(KotlinJsCompilerAttribute.jsCompilerAttribute, KotlinJsCompilerAttribute.legacy) + } + } + [compileClasspath, testCompileClasspath, testRuntimeClasspath].forEach { + it.attributes { + attribute(org.jetbrains.kotlin.gradle.targets.js.KotlinJsCompilerAttribute.jsCompilerAttribute, org.jetbrains.kotlin.gradle.targets.js.KotlinJsCompilerAttribute.legacy) } } } @@ -39,6 +47,7 @@ tasks.register("populateNodeModules", Copy) { dependsOn(compileKotlin2Js) dependsOn(configurations.nodeModules) from compileKotlin2Js.destinationDirectory + duplicatesStrategy = DuplicatesStrategy.EXCLUDE // temporary until stdlib mpp migration is completed from { configurations.nodeModules.collect {