Mpp resolve: ignore module dependencies on libraries of other platforms
These are not read by the compiler Untested: test infrastructure needed #KT-20406 Fixed
This commit is contained in:
@@ -103,7 +103,11 @@ private fun OrderEntry.acceptAsDependency(forProduction: Boolean): Boolean {
|
|||||||
|| scope.isForProductionCompile
|
|| scope.isForProductionCompile
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun ideaModelDependencies(module: Module, forProduction: Boolean): List<IdeaModuleInfo> {
|
private fun ideaModelDependencies(
|
||||||
|
module: Module,
|
||||||
|
forProduction: Boolean,
|
||||||
|
platform: TargetPlatform
|
||||||
|
): List<IdeaModuleInfo> {
|
||||||
//NOTE: lib dependencies can be processed several times during recursive traversal
|
//NOTE: lib dependencies can be processed several times during recursive traversal
|
||||||
val result = LinkedHashSet<IdeaModuleInfo>()
|
val result = LinkedHashSet<IdeaModuleInfo>()
|
||||||
val dependencyEnumerator = ModuleRootManager.getInstance(module).orderEntries().compileOnly().recursively().exportedOnly()
|
val dependencyEnumerator = ModuleRootManager.getInstance(module).orderEntries().compileOnly().recursively().exportedOnly()
|
||||||
@@ -116,7 +120,7 @@ private fun ideaModelDependencies(module: Module, forProduction: Boolean): List<
|
|||||||
}
|
}
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
return result.toList()
|
return result.filterNot { it is LibraryInfo && it.platform != platform }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Module.findImplementedModuleNames(modelsProvider: IdeModifiableModelsProvider): List<String> {
|
fun Module.findImplementedModuleNames(modelsProvider: IdeModifiableModelsProvider): List<String> {
|
||||||
@@ -158,7 +162,7 @@ sealed class ModuleSourceInfoWithExpectedBy(private val forProduction: Boolean)
|
|||||||
|
|
||||||
override fun dependencies(): List<IdeaModuleInfo> = module.cached(createCachedValueProvider {
|
override fun dependencies(): List<IdeaModuleInfo> = module.cached(createCachedValueProvider {
|
||||||
CachedValueProvider.Result(
|
CachedValueProvider.Result(
|
||||||
ideaModelDependencies(module, forProduction),
|
ideaModelDependencies(module, forProduction, platform),
|
||||||
ProjectRootModificationTracker.getInstance(module.project)
|
ProjectRootModificationTracker.getInstance(module.project)
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user