Commit 720a5267 authored by Samuel E. Giddins's avatar Samuel E. Giddins

[Resolver] Verify platform compatability

parent 54b0c132
...@@ -14,7 +14,6 @@ module Resolver ...@@ -14,7 +14,6 @@ module Resolver
end end
module Pod module Pod
class Specification::Set class Specification::Set
class LazySpecification < BasicObject class LazySpecification < BasicObject
attr_reader :name, :version, :source attr_reader :name, :version, :source
...@@ -109,7 +108,7 @@ module Pod ...@@ -109,7 +108,7 @@ module Pod
def resolve def resolve
@cached_specs = {} @cached_specs = {}
@cached_sets = {} @cached_sets = {}
@activated = ::Resolver::Resolver.new(self,self). @activated = ::Resolver::Resolver.new(self, self).
resolve( resolve(
@podfile.target_definition_list.map(&:dependencies).flatten, @podfile.target_definition_list.map(&:dependencies).flatten,
locked_dependencies.reduce(::Resolver::DependencyGraph.new) do |graph, locked| locked_dependencies.reduce(::Resolver::DependencyGraph.new) do |graph, locked|
...@@ -189,8 +188,19 @@ module Pod ...@@ -189,8 +188,19 @@ module Pod
specs_by_target[target] = target.dependencies.map(&:name).map do |name| specs_by_target[target] = target.dependencies.map(&:name).map do |name|
node = @activated.vertex_named(name) node = @activated.vertex_named(name)
(node.recursive_successors << node).to_a (node.recursive_successors << node).to_a
end.flatten.map(&:payload).uniq.sort { |x, y| x.name <=> y.name }. end.
each { |s| sandbox.store_head_pod(s.name) if s.version.head } flatten.
map(&:payload).
uniq.
sort { |x, y| x.name <=> y.name }.
each do |spec|
unless spec.available_platforms.any? { |p| target.platform.supports?(p) }
raise Informative, "The platform of the target `#{target.name}` " \
"(#{target.platform}) is not compatible with `#{spec}` which has " \
"a minimum requirement of #{spec.available_platforms.join(' - ')}."
end
sandbox.store_head_pod(spec.name) if spec.version.head
end
end end
specs_by_target specs_by_target
end end
......
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