[Gradle] Dont fail when resolving MetadataDependencies configuration

When HMPP project depends on non-mpp (ex. java) gradle project
Resolving *MetadataDependencies configurations should not fail due to
lack of Gradle's Kotlin MPP Extension.
Simply return null when no such extension found in non-mpp project.
This commit is contained in:
Anton Lakotka
2021-11-24 16:20:51 +01:00
committed by Space
parent 9a2f18581c
commit 6fd76a0ae6
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp
import org.gradle.api.Project
import org.gradle.api.artifacts.component.ProjectComponentIdentifier
import org.gradle.api.artifacts.result.ResolvedComponentResult
import org.jetbrains.kotlin.gradle.dsl.topLevelExtension
import org.jetbrains.kotlin.gradle.dsl.topLevelExtensionOrNull
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinPm20ProjectExtension
import org.jetbrains.kotlin.project.model.KotlinModuleIdentifier
import java.io.File
@@ -28,10 +28,11 @@ internal class ProjectMppDependencyProjectStructureMetadataExtractor(
) : MppDependencyProjectStructureMetadataExtractor() {
override fun getProjectStructureMetadata(): KotlinProjectStructureMetadata? {
return when (val topLevelExtension = dependencyProject.topLevelExtension) {
return when (val topLevelExtension = dependencyProject.topLevelExtensionOrNull) {
is KotlinPm20ProjectExtension -> buildProjectStructureMetadata(
topLevelExtension.modules.single { it.moduleIdentifier == moduleIdentifier }
)
null -> null
else -> buildKotlinProjectStructureMetadata(dependencyProject)
}
}