deps should respect skip-recommended
For example, `brew deps libass --skip-recommended` shouldn't print harfbuzz because, even though libass builds with harfbuzz when harfbuzz is not skipped, we asked to skip recommended, of which harfbuzz is one. The corresponding change is made for `brew uses` as well. Thanks to Xu Cheng for contributing the code. Any errors are mine. Closes #129. Signed-off-by: ilovezfs <ilovezfs@icloud.com>
This commit is contained in:
parent
11d47e8325
commit
6367508454
@ -85,10 +85,22 @@ module Homebrew
|
||||
|
||||
if recursive
|
||||
deps = f.recursive_dependencies do |dependent, dep|
|
||||
Dependency.prune if ignores.any? { |ignore| dep.send(ignore) } && !includes.any? { |include| dep.send(include) } && !dependent.build.with?(dep)
|
||||
if dep.recommended?
|
||||
Dependency.prune if ignores.include?("recommended?") || dependent.build.without?(dep)
|
||||
elsif dep.optional?
|
||||
Dependency.prune if !includes.include?("optional?") && !dependent.build.with?(dep)
|
||||
elsif dep.build?
|
||||
Dependency.prune unless includes.include?("build?")
|
||||
end
|
||||
end
|
||||
reqs = f.recursive_requirements do |dependent, req|
|
||||
Requirement.prune if ignores.any? { |ignore| req.send(ignore) } && !includes.any? { |include| req.send(include) } && !dependent.build.with?(req)
|
||||
if req.recommended?
|
||||
Requirement.prune if ignores.include?("recommended?") || dependent.build.without?(req)
|
||||
elsif req.optional?
|
||||
Requirement.prune if !includes.include?("optional?") && !dependent.build.with?(req)
|
||||
elsif req.build?
|
||||
Requirement.prune unless includes.include?("build?")
|
||||
end
|
||||
end
|
||||
else
|
||||
deps = f.deps.reject do |dep|
|
||||
|
||||
@ -48,10 +48,22 @@ module Homebrew
|
||||
begin
|
||||
if recursive
|
||||
deps = f.recursive_dependencies do |dependent, dep|
|
||||
Dependency.prune if ignores.any? { |ignore| dep.send(ignore) } && !includes.any? { |include| dep.send(include) } && !dependent.build.with?(dep)
|
||||
if dep.recommended?
|
||||
Dependency.prune if ignores.include?("recommended?") || dependent.build.without?(dep)
|
||||
elsif dep.optional?
|
||||
Dependency.prune if !includes.include?("optional?") && !dependent.build.with?(dep)
|
||||
elsif dep.build?
|
||||
Dependency.prune unless includes.include?("build?")
|
||||
end
|
||||
end
|
||||
reqs = f.recursive_requirements do |dependent, req|
|
||||
Requirement.prune if ignores.any? { |ignore| req.send(ignore) } && !includes.any? { |include| req.send(include) } && !dependent.build.with?(req)
|
||||
if req.recommended?
|
||||
Requirement.prune if ignores.include?("recommended?") || dependent.build.without?(req)
|
||||
elsif req.optional?
|
||||
Requirement.prune if !includes.include?("optional?") && !dependent.build.with?(req)
|
||||
elsif req.build?
|
||||
Requirement.prune unless includes.include?("build?")
|
||||
end
|
||||
end
|
||||
deps.any? { |dep| dep.to_formula.full_name == ff.full_name rescue dep.name == ff.name } ||
|
||||
reqs.any? { |req| req.name == ff.name || [ff.name, ff.full_name].include?(req.default_formula) }
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user