Merge pull request #6872 from EricFromCanada/deps-build-test

deps: don't skip dependencies that are both :build and :test
This commit is contained in:
Mike McQuaid 2019-12-28 15:02:23 +00:00 committed by GitHub
commit e7a2fdeb65
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 9 deletions

View File

@ -175,13 +175,11 @@ module Homebrew
end end
def recursive_deps_tree(f, prefix, recursive) def recursive_deps_tree(f, prefix, recursive)
reqs = f.requirements includes, ignores = argv_includes_ignores(ARGV)
deps = f.deps deps = reject_ignores(f.deps, ignores, includes)
reqs = reject_ignores(f.requirements, ignores, includes)
dependables = reqs + deps dependables = reqs + deps
dependables.reject!(&:optional?) unless args.include_optional?
dependables.reject!(&:build?) unless args.include_build?
dependables.reject!(&:test?) unless args.include_test?
dependables.reject!(&:recommended?) if args.skip_recommended?
max = dependables.length - 1 max = dependables.length - 1
@dep_stack.push f.name @dep_stack.push f.name
dependables.each_with_index do |dep, i| dependables.each_with_index do |dep, i|

View File

@ -98,19 +98,21 @@ module Homebrew
formula.send("recursive_#{type}") do |dependent, dep| formula.send("recursive_#{type}") do |dependent, dep|
if dep.recommended? if dep.recommended?
klass.prune if ignores.include?("recommended?") || dependent.build.without?(dep) klass.prune if ignores.include?("recommended?") || dependent.build.without?(dep)
elsif dep.optional?
klass.prune if !includes.include?("optional?") && !dependent.build.with?(dep)
elsif dep.test? elsif dep.test?
if includes.include?("test?") if includes.include?("test?")
Dependency.keep_but_prune_recursive_deps if type == :dependencies Dependency.keep_but_prune_recursive_deps if type == :dependencies
elsif dep.build?
klass.prune unless includes.include?("build?")
else else
klass.prune klass.prune
end end
elsif dep.optional?
klass.prune if !includes.include?("optional?") && !dependent.build.with?(dep)
elsif dep.build? elsif dep.build?
klass.prune unless includes.include?("build?") klass.prune unless includes.include?("build?")
end end
# If a tap isn't installed, we can't find the dependencies of one # If a tap isn't installed, we can't find the dependencies of one of
# its formulae, and an exception will be thrown if we try. # its formulae, and an exception will be thrown if we try.
if type == :dependencies && if type == :dependencies &&
dep.is_a?(TapDependency) && dep.is_a?(TapDependency) &&