From 1e20d9149b87ff8996f6612c93e787e0ab472920 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Sat, 5 Apr 2014 10:40:04 -0500 Subject: [PATCH] Ensure build deps are installed for deps with inherited options Fixes Homebrew/homebrew#28144. --- Library/Homebrew/formula_installer.rb | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index 6fba3aded1..2e67fa5ee9 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -292,8 +292,8 @@ class FormulaInstaller expanded_deps = ARGV.filter_for_dependencies do Dependency.expand(f, deps) do |dependent, dep| - options = inherited_options[dep] = inherited_options_for(dep) - build = effective_build_options_for(dependent) + options = inherited_options[dep.name] = inherited_options_for(dep) + build = effective_build_options_for(dependent, inherited_options[dependent.name]) if (dep.optional? || dep.recommended?) && build.without?(dep) Dependency.prune @@ -309,16 +309,18 @@ class FormulaInstaller end end - expanded_deps.map { |dep| [dep, inherited_options[dep]] } + expanded_deps.map { |dep| [dep, inherited_options[dep.name]] } end - def effective_build_options_for(dependent) + def effective_build_options_for(dependent, inherited_options=[]) if dependent == f build = dependent.build.dup build.args |= options build else - dependent.build + build = dependent.build.dup + build.args |= inherited_options + build end end