[Gradle] Decouple ProjectMppDependency[PSM]Extractor from Gradle Project
^KT-49933
This commit is contained in:
committed by
Space Team
parent
6b2111c2a5
commit
ceefc4f1ee
+1
-1
@@ -255,7 +255,7 @@ internal class GranularMetadataTransformation(
|
|||||||
|
|
||||||
val metadataProvider = when (mppDependencyMetadataExtractor) {
|
val metadataProvider = when (mppDependencyMetadataExtractor) {
|
||||||
is ProjectMppDependencyProjectStructureMetadataExtractor -> ProjectMetadataProvider(
|
is ProjectMppDependencyProjectStructureMetadataExtractor -> ProjectMetadataProvider(
|
||||||
dependencyProject = mppDependencyMetadataExtractor.dependencyProject,
|
dependencyProject = project.project(mppDependencyMetadataExtractor.projectPath),
|
||||||
moduleIdentifier = mppDependencyMetadataExtractor.moduleIdentifier
|
moduleIdentifier = mppDependencyMetadataExtractor.moduleIdentifier
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+17
-9
@@ -27,18 +27,26 @@ sealed class MppDependencyProjectStructureMetadataExtractor {
|
|||||||
|
|
||||||
internal class ProjectMppDependencyProjectStructureMetadataExtractor(
|
internal class ProjectMppDependencyProjectStructureMetadataExtractor(
|
||||||
val moduleIdentifier: KpmModuleIdentifier,
|
val moduleIdentifier: KpmModuleIdentifier,
|
||||||
val dependencyProject: Project
|
val projectPath: String,
|
||||||
|
private val projectStructureMetadataProvider: () -> KotlinProjectStructureMetadata?
|
||||||
) : MppDependencyProjectStructureMetadataExtractor() {
|
) : MppDependencyProjectStructureMetadataExtractor() {
|
||||||
|
|
||||||
override fun getProjectStructureMetadata(): KotlinProjectStructureMetadata? {
|
constructor(
|
||||||
return when {
|
moduleIdentifier: KpmModuleIdentifier,
|
||||||
dependencyProject.topLevelExtensionOrNull == null -> null
|
dependencyProject: Project
|
||||||
dependencyProject.pm20ExtensionOrNull != null -> buildProjectStructureMetadata(
|
): this(moduleIdentifier, dependencyProject.path, { dependencyProject.getProjectStructureMetadata(moduleIdentifier) })
|
||||||
dependencyProject.pm20Extension.modules.single { it.moduleIdentifier == moduleIdentifier }
|
|
||||||
)
|
|
||||||
|
|
||||||
else -> dependencyProject.multiplatformExtensionOrNull?.kotlinProjectStructureMetadata
|
override fun getProjectStructureMetadata(): KotlinProjectStructureMetadata? = projectStructureMetadataProvider()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun Project.getProjectStructureMetadata(moduleIdentifier: KpmModuleIdentifier): KotlinProjectStructureMetadata? {
|
||||||
|
return when {
|
||||||
|
topLevelExtensionOrNull == null -> null
|
||||||
|
pm20ExtensionOrNull != null -> buildProjectStructureMetadata(
|
||||||
|
pm20Extension.modules.single { it.moduleIdentifier == moduleIdentifier }
|
||||||
|
)
|
||||||
|
|
||||||
|
else -> multiplatformExtensionOrNull?.kotlinProjectStructureMetadata
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -104,7 +104,7 @@ internal class GradleKpmFragmentGranularMetadataResolver(
|
|||||||
|
|
||||||
val metadataProvider = when (projectStructureMetadataExtractor) {
|
val metadataProvider = when (projectStructureMetadataExtractor) {
|
||||||
is ProjectMppDependencyProjectStructureMetadataExtractor -> ProjectMetadataProvider(
|
is ProjectMppDependencyProjectStructureMetadataExtractor -> ProjectMetadataProvider(
|
||||||
dependencyProject = projectStructureMetadataExtractor.dependencyProject,
|
dependencyProject = project.project(projectStructureMetadataExtractor.projectPath),
|
||||||
moduleIdentifier = projectStructureMetadataExtractor.moduleIdentifier
|
moduleIdentifier = projectStructureMetadataExtractor.moduleIdentifier
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user