[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) {
|
||||
is ProjectMppDependencyProjectStructureMetadataExtractor -> ProjectMetadataProvider(
|
||||
dependencyProject = mppDependencyMetadataExtractor.dependencyProject,
|
||||
dependencyProject = project.project(mppDependencyMetadataExtractor.projectPath),
|
||||
moduleIdentifier = mppDependencyMetadataExtractor.moduleIdentifier
|
||||
)
|
||||
|
||||
|
||||
+17
-9
@@ -27,18 +27,26 @@ sealed class MppDependencyProjectStructureMetadataExtractor {
|
||||
|
||||
internal class ProjectMppDependencyProjectStructureMetadataExtractor(
|
||||
val moduleIdentifier: KpmModuleIdentifier,
|
||||
val dependencyProject: Project
|
||||
val projectPath: String,
|
||||
private val projectStructureMetadataProvider: () -> KotlinProjectStructureMetadata?
|
||||
) : MppDependencyProjectStructureMetadataExtractor() {
|
||||
|
||||
override fun getProjectStructureMetadata(): KotlinProjectStructureMetadata? {
|
||||
return when {
|
||||
dependencyProject.topLevelExtensionOrNull == null -> null
|
||||
dependencyProject.pm20ExtensionOrNull != null -> buildProjectStructureMetadata(
|
||||
dependencyProject.pm20Extension.modules.single { it.moduleIdentifier == moduleIdentifier }
|
||||
)
|
||||
constructor(
|
||||
moduleIdentifier: KpmModuleIdentifier,
|
||||
dependencyProject: Project
|
||||
): this(moduleIdentifier, dependencyProject.path, { dependencyProject.getProjectStructureMetadata(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) {
|
||||
is ProjectMppDependencyProjectStructureMetadataExtractor -> ProjectMetadataProvider(
|
||||
dependencyProject = projectStructureMetadataExtractor.dependencyProject,
|
||||
dependencyProject = project.project(projectStructureMetadataExtractor.projectPath),
|
||||
moduleIdentifier = projectStructureMetadataExtractor.moduleIdentifier
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user