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
This commit is contained in:
Yahor Berdnikau
2021-03-01 18:01:29 +01:00
parent 2e1c1cd154
commit 58564a7b89
5 changed files with 8 additions and 17 deletions
@@ -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()
@@ -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)
)
}
}
@@ -97,11 +97,6 @@ constructor(
}
}
@get:Internal
val nodeModulesToLoad: List<String> by lazy {
listOf("./" + compilation.npmProject.main)
}
override val nodeModulesRequired: Boolean
@Internal get() = testFramework!!.nodeModulesRequired
@@ -314,9 +314,7 @@ class KotlinKarma(
nodeJsArgs: MutableList<String>,
debug: Boolean
): TCServiceMessagesTestExecutionSpec {
val file = task.nodeModulesToLoad
.map { npmProject.require(it) }
.single()
val file = task.inputFileProperty.get().asFile.toString()
val adapterJs = createAdapterJs(file, debug)
@@ -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)