From 58564a7b89e09d4395c5baa447809364ec54d36f Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Mon, 1 Mar 2021 18:01:29 +0100 Subject: [PATCH] Distinguish outputs of JS IR tasks. Now JS IR link and sync tasks will output produced artifacts based on compilation name, binary name and binary mode. This will remove Gradle 7 error about missing task dependencies, which should not depend on each other. ^KT-44949 In Progress --- .../jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt | 2 +- .../kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt | 10 +++++----- .../kotlin/gradle/targets/js/testing/KotlinJsTest.kt | 5 ----- .../gradle/targets/js/testing/karma/KotlinKarma.kt | 4 +--- .../gradle/targets/js/testing/mocha/KotlinMocha.kt | 4 +--- 5 files changed, 8 insertions(+), 17 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt index 2cf8c6f3e66..d2acf64594f 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt @@ -58,7 +58,7 @@ class Kotlin2JsIrGradlePluginIT : AbstractKotlin2JsGradlePluginIT(true) { assertTasksExecuted(":compileProductionExecutableKotlinJs") - assertFileExists("build/js/packages/kotlin-js-nodejs/kotlin/kotlin-js-nodejs.js") + assertFileExists("build/js/packages/kotlin-js-nodejs/kotlin/productionExecutable/kotlin-js-nodejs.js") } File("${projectDir.canonicalPath}/src").deleteRecursively() diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt index 1b3b93b7c7f..141408ecfb0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt @@ -20,10 +20,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.disambiguateName import org.jetbrains.kotlin.gradle.targets.js.JsAggregatingExecutionSource import org.jetbrains.kotlin.gradle.targets.js.KotlinJsReportAggregatingTestRun import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget -import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBrowserDsl -import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsNodeDsl -import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl -import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl +import org.jetbrains.kotlin.gradle.targets.js.dsl.* import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject import org.jetbrains.kotlin.gradle.tasks.registerTask import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName @@ -111,6 +108,9 @@ constructor( binary.linkTask.configure { it.kotlinOptions.outputFile = project.buildDir .resolve(COMPILE_SYNC) + .resolve(compilation.name) + .resolve(binary.name) + .resolve(binary.mode.name.toLowerCase()) .resolve(npmProject.main) .canonicalPath @@ -133,7 +133,7 @@ constructor( task.from(project.tasks.named(compilation.processResourcesTaskName)) task.into( - npmProject.dist + npmProject.dist.resolve(binary.name) ) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinJsTest.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinJsTest.kt index b019666c4e0..75a9f83e4d1 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinJsTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinJsTest.kt @@ -97,11 +97,6 @@ constructor( } } - @get:Internal - val nodeModulesToLoad: List by lazy { - listOf("./" + compilation.npmProject.main) - } - override val nodeModulesRequired: Boolean @Internal get() = testFramework!!.nodeModulesRequired diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/karma/KotlinKarma.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/karma/KotlinKarma.kt index 068bc7c8e51..d57fef8f916 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/karma/KotlinKarma.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/karma/KotlinKarma.kt @@ -314,9 +314,7 @@ class KotlinKarma( nodeJsArgs: MutableList, debug: Boolean ): TCServiceMessagesTestExecutionSpec { - val file = task.nodeModulesToLoad - .map { npmProject.require(it) } - .single() + val file = task.inputFileProperty.get().asFile.toString() val adapterJs = createAdapterJs(file, debug) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/mocha/KotlinMocha.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/mocha/KotlinMocha.kt index 052f0b73bf2..92870d98b8b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/mocha/KotlinMocha.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/mocha/KotlinMocha.kt @@ -74,9 +74,7 @@ class KotlinMocha(@Transient override val compilation: KotlinJsCompilation, priv val mocha = npmProject.require("mocha/bin/mocha") - val file = task.nodeModulesToLoad - .map { npmProject.require(it) } - .single() + val file = task.inputFileProperty.get().asFile.toString() val adapter = createAdapterJs(file)