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
|
||||
}
|
||||
|
||||
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
|
||||
val result = LinkedHashSet<IdeaModuleInfo>()
|
||||
val dependencyEnumerator = ModuleRootManager.getInstance(module).orderEntries().compileOnly().recursively().exportedOnly()
|
||||
@@ -116,7 +120,7 @@ private fun ideaModelDependencies(module: Module, forProduction: Boolean): List<
|
||||
}
|
||||
true
|
||||
}
|
||||
return result.toList()
|
||||
return result.filterNot { it is LibraryInfo && it.platform != platform }
|
||||
}
|
||||
|
||||
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 {
|
||||
CachedValueProvider.Result(
|
||||
ideaModelDependencies(module, forProduction),
|
||||
ideaModelDependencies(module, forProduction, platform),
|
||||
ProjectRootModificationTracker.getInstance(module.project)
|
||||
)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user