From 623edefb002a684bc2e3fd2d8870d5d1bb847dab Mon Sep 17 00:00:00 2001 From: Evgenii Mazhukin Date: Tue, 2 Jul 2024 17:54:40 +0200 Subject: [PATCH] [KGP] Fix missing task dependency between Test and Main compilations For historic reasons friendPaths might contain the jars built from the main module. However it's an Internal field, so task dependency wasn't created. This commit completes the chain of providers. As a result Gradle can deduce that :compileKotlinTest depends on :desktopJar, if applicable. ^KT-69330 Fixed --- .../kotlin/gradle/tasks/AbstractKotlinCompile.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/AbstractKotlinCompile.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/AbstractKotlinCompile.kt index 398877578468d..c3b7a027ab27f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/AbstractKotlinCompile.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/AbstractKotlinCompile.kt @@ -104,12 +104,16 @@ abstract class AbstractKotlinCompile @Inject constr // This allows us to treat friendPaths as Input rather than InputFiles @get:Input - internal val friendPathsSet: Set + internal val friendPathsSet: Provider> get() { val buildDirFile = projectLayout.buildDirectory.asFile.get() - return friendPaths - .filter { it.exists() } - .map { it.normalize().relativeTo(buildDirFile).invariantSeparatorsPath }.toSet() + return friendPaths.elements.map { providedSet -> + providedSet + .map { it.asFile } + .filter { it.exists() } + .map { it.normalize().relativeTo(buildDirFile).invariantSeparatorsPath } + .toSet() + } } @get:Internal