[Gradle] KotlinCompilationAssociator: Restore 1.8.10 behaviour for KotlinWithJavaTarget

^KT-58280 Verification Pending
This commit is contained in:
Sebastian Sellmair
2023-05-05 15:38:45 +02:00
committed by Space Team
parent 3196981799
commit 08f3d56d9b
2 changed files with 16 additions and 5 deletions
@@ -282,11 +282,16 @@ class SimpleKotlinGradleIT : KGPBaseTest() {
buildGradle.appendText(
"""
|
|tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile.class).configureEach {
| if (it.name == "compileKotlin") {
| it.destinationDirectory.set(project.layout.buildDirectory.dir("banana"))
| }
|def compileKotlinTask = tasks.named("compileKotlin", org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile.class)
|
|compileKotlinTask.configure {
| it.destinationDirectory.set(project.layout.buildDirectory.dir("banana"))
|}
|
|def compileKotlinTaskOutput = compileKotlinTask.flatMap { it.destinationDirectory }
|sourceSets.test.compileClasspath.from(compileKotlinTaskOutput)
|sourceSets.test.runtimeClasspath.from(compileKotlinTaskOutput)
|
""".trimMargin()
)
@@ -7,8 +7,10 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl
import org.gradle.api.Project
import org.gradle.api.artifacts.Dependency
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType.jvm
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
import org.jetbrains.kotlin.gradle.plugin.mpp.InternalKotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaTarget
import org.jetbrains.kotlin.gradle.plugin.mpp.isMain
import org.jetbrains.kotlin.gradle.plugin.mpp.isTest
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
@@ -76,7 +78,11 @@ internal object KotlinNativeCompilationAssociator : KotlinCompilationAssociator
internal object KotlinJvmCompilationAssociator : KotlinCompilationAssociator {
override fun associate(target: KotlinTarget, auxiliary: InternalKotlinCompilation<*>, main: InternalKotlinCompilation<*>) {
/* Main to Test association handled already by java plugin */
if (target is KotlinJvmTarget && target.withJavaEnabled && auxiliary.isTest() && main.isMain()) {
if (
((target is KotlinWithJavaTarget<*, *> && target.platformType == jvm) ||
(target is KotlinJvmTarget && target.withJavaEnabled)) &&
auxiliary.isTest() && main.isMain()
) {
return
} else DefaultKotlinCompilationAssociator.associate(target, auxiliary, main)
}