From f9ffe6743082ce9f1a13634978cc035a48b4fc9a Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 23 Nov 2023 11:50:08 +0100 Subject: [PATCH] [Gradle, JS] Add comment why we use project.provider and not use single --- .../gradle/tasks/configuration/KotlinJsIrLinkConfig.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinJsIrLinkConfig.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinJsIrLinkConfig.kt index 5bdf88cb753..6c9d57013f9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinJsIrLinkConfig.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinJsIrLinkConfig.kt @@ -28,9 +28,16 @@ internal open class KotlinJsIrLinkConfig( task.dependsOn(compilation.compileTaskProvider) task.dependsOn(compilation.output.classesDirs) + // We still support Gradle 6.8 in tests + // Gradle 6.8 has a bug with verifying of not getting provider before Task execution task.entryModule.fileProvider( task.project.providers.provider { - compilation.output.classesDirs.elements.get().single().asFile + val elements = compilation.output.classesDirs.elements.get() + elements.singleOrNull()?.asFile + ?: throw IllegalStateException( + "Only one output fo compilation expected," + + "but actual: ${elements.joinToString(prefix = "[", postfix = "]") { it.toString() }}" + ) } ).disallowChanges() task.rootCacheDirectory.set(project.layout.buildDirectory.map { it.dir("klib/cache/js/${binary.name}") })