From 48a8af32f3889a2b022c85f7258168150c4c00b4 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Sun, 27 Jan 2013 23:57:34 -0600 Subject: [PATCH] Filter optional and reccommended requirements --- Library/Homebrew/formula_installer.rb | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index adafbc11dd..623d2b9303 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -104,15 +104,23 @@ class FormulaInstaller end def check_requirements - needed_reqs = ARGV.filter_for_dependencies do - f.recursive_requirements.reject(&:satisfied?) + unsatisfied = ARGV.filter_for_dependencies do + f.recursive_requirements.select do |req| + if req.satisfied? + false + elsif req.build? + not pour_bottle? + elsif req.optional? || req.recommended? + f.recursive_dependencies.map(&:to_formula).any? do |dep| + dep.build.with?(req.name) + end || f.build.with?(req.name) + end + end end - needed_reqs.reject!(&:build?) if pour_bottle? - - unless needed_reqs.empty? - puts needed_reqs.map(&:message) * "\n" - fatals = needed_reqs.select(&:fatal?) + unless unsatisfied.empty? + puts unsatisfied.map(&:message) * "\n" + fatals = unsatisfied.select(&:fatal?) raise UnsatisfiedRequirements.new(f, fatals) unless fatals.empty? end end