Commit 6fc159de authored by Samuel E. Giddins's avatar Samuel E. Giddins

[Resolver] Allow platform detection to work for nested dependencies

parent d7ca4c95
...@@ -537,7 +537,7 @@ module Pod ...@@ -537,7 +537,7 @@ module Pod
end end
specs_by_target = nil specs_by_target = nil
UI.section "Resolving dependencies of #{UI.path podfile.defined_in_file}" do UI.section "Resolving dependencies of #{UI.path(podfile.defined_in_file) || 'Podfile'}" do
resolver = Resolver.new(sandbox, podfile, locked_dependencies, sources) resolver = Resolver.new(sandbox, podfile, locked_dependencies, sources)
specs_by_target = resolver.resolve specs_by_target = resolver.resolve
specs_by_target.values.flatten(1).each(&:validate_cocoapods_version) specs_by_target.values.flatten(1).each(&:validate_cocoapods_version)
......
...@@ -409,10 +409,10 @@ module Pod ...@@ -409,10 +409,10 @@ module Pod
def spec_is_platform_compatible?(dependency_graph, dependency, spec) def spec_is_platform_compatible?(dependency_graph, dependency, spec)
all_predecessors = ->(vertex) do all_predecessors = ->(vertex) do
pred = vertex.predecessors pred = vertex.predecessors
pred + pred.map(&all_predecessors).reduce(Set.new, &:&) << vertex pred + pred.map(&all_predecessors).reduce(Set.new, &:|) << vertex
end end
vertex = dependency_graph.vertex_named(dependency.name) vertex = dependency_graph.vertex_named(dependency.name)
predecessors = all_predecessors[vertex].reject { |v| v.explicit_requirements.empty? } predecessors = all_predecessors[vertex].reject { |v| !dependency_graph.root_vertex_named(v.name) }
platforms_to_satisfy = predecessors.flat_map(&:explicit_requirements).flat_map { |r| @platforms_by_dependency[r] } platforms_to_satisfy = predecessors.flat_map(&:explicit_requirements).flat_map { |r| @platforms_by_dependency[r] }
platforms_to_satisfy.all? do |platform_to_satisfy| platforms_to_satisfy.all? do |platform_to_satisfy|
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment