[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:
+3
-2
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp
|
|||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.artifacts.component.ProjectComponentIdentifier
|
import org.gradle.api.artifacts.component.ProjectComponentIdentifier
|
||||||
import org.gradle.api.artifacts.result.ResolvedComponentResult
|
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.gradle.plugin.mpp.pm20.KotlinPm20ProjectExtension
|
||||||
import org.jetbrains.kotlin.project.model.KotlinModuleIdentifier
|
import org.jetbrains.kotlin.project.model.KotlinModuleIdentifier
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -28,10 +28,11 @@ internal class ProjectMppDependencyProjectStructureMetadataExtractor(
|
|||||||
) : MppDependencyProjectStructureMetadataExtractor() {
|
) : MppDependencyProjectStructureMetadataExtractor() {
|
||||||
|
|
||||||
override fun getProjectStructureMetadata(): KotlinProjectStructureMetadata? {
|
override fun getProjectStructureMetadata(): KotlinProjectStructureMetadata? {
|
||||||
return when (val topLevelExtension = dependencyProject.topLevelExtension) {
|
return when (val topLevelExtension = dependencyProject.topLevelExtensionOrNull) {
|
||||||
is KotlinPm20ProjectExtension -> buildProjectStructureMetadata(
|
is KotlinPm20ProjectExtension -> buildProjectStructureMetadata(
|
||||||
topLevelExtension.modules.single { it.moduleIdentifier == moduleIdentifier }
|
topLevelExtension.modules.single { it.moduleIdentifier == moduleIdentifier }
|
||||||
)
|
)
|
||||||
|
null -> null
|
||||||
else -> buildKotlinProjectStructureMetadata(dependencyProject)
|
else -> buildKotlinProjectStructureMetadata(dependencyProject)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user