From fef1de8620ec16d292ccb88f6125dfdc8781e242 Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Tue, 11 Oct 2022 13:03:22 +0200 Subject: [PATCH] [Gradle][MPP] KotlinTargetHierarchyBuilderImpl: Support KotlinWithJavaTarget ^KT-53570 Verification Pending --- .../buildKotlinTargetHierarchy.kt | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/targetHierarchy/buildKotlinTargetHierarchy.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/targetHierarchy/buildKotlinTargetHierarchy.kt index d6662c3a19e..c78a83d2cc8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/targetHierarchy/buildKotlinTargetHierarchy.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/targetHierarchy/buildKotlinTargetHierarchy.kt @@ -6,12 +6,10 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.targetHierarchy import org.gradle.api.InvalidUserCodeException -import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation -import org.jetbrains.kotlin.gradle.plugin.KotlinTarget -import org.jetbrains.kotlin.gradle.plugin.KotlinTargetHierarchyBuilder -import org.jetbrains.kotlin.gradle.plugin.KotlinTargetHierarchyDescriptor +import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaTarget import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget import org.jetbrains.kotlin.konan.target.Family @@ -120,7 +118,15 @@ private class KotlinTargetHierarchyBuilderImpl( override fun anyJs() = addTargets { it is KotlinJsTargetDsl } - override fun jvm() = addTargets { it is KotlinJvmTarget } + override fun jvm() = addTargets { + it is KotlinJvmTarget || + /* + Handle older KotlinWithJavaTarget correctly: + KotlinWithJavaTarget is also registered as the target in Kotlin2JsProjectExtension + using KotlinPlatformType.js instead of jvm. + */ + (it is KotlinWithJavaTarget<*, *> && it.platformType == KotlinPlatformType.jvm) + } override fun android() = addTargets { it is KotlinAndroidTarget }