aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/dev-cmd/linkage.rb
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/dev-cmd/linkage.rb')
-rw-r--r--Library/Homebrew/dev-cmd/linkage.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/Library/Homebrew/dev-cmd/linkage.rb b/Library/Homebrew/dev-cmd/linkage.rb
index 8c29dbe4e..f6a5b52c4 100644
--- a/Library/Homebrew/dev-cmd/linkage.rb
+++ b/Library/Homebrew/dev-cmd/linkage.rb
@@ -72,7 +72,13 @@ module Homebrew
begin
f = Formulary.from_rack(keg.rack)
- @undeclared_deps = @brewed_dylibs.keys - f.deps.map(&:name)
+ f.build = Tab.for_keg(keg)
+ filter_out = proc do |dep|
+ dep.build? || (dep.optional? && !dep.option_names.any? { |n| f.build.with?(n) })
+ end
+ declared_deps = f.deps.reject { |dep| filter_out.call(dep) }.map(&:name) +
+ f.requirements.reject { |req| filter_out.call(req) }.map(&:default_formula).compact
+ @undeclared_deps = @brewed_dylibs.keys - declared_deps.map { |dep| dep.split("/").last }
@undeclared_deps -= [f.name]
rescue FormulaUnavailableError
opoo "Formula unavailable: #{keg.name}"