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
|
if recursive
|
||||||
deps = f.recursive_dependencies do |dependent, dep|
|
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
|
end
|
||||||
reqs = f.recursive_requirements do |dependent, req|
|
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
|
end
|
||||||
else
|
else
|
||||||
deps = f.deps.reject do |dep|
|
deps = f.deps.reject do |dep|
|
||||||
|
|||||||
@ -48,10 +48,22 @@ module Homebrew
|
|||||||
begin
|
begin
|
||||||
if recursive
|
if recursive
|
||||||
deps = f.recursive_dependencies do |dependent, dep|
|
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
|
end
|
||||||
reqs = f.recursive_requirements do |dependent, req|
|
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
|
end
|
||||||
deps.any? { |dep| dep.to_formula.full_name == ff.full_name rescue dep.name == ff.name } ||
|
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) }
|
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