linkage_checker: check for extraneous dependencies
This commit is contained in:
parent
f3ec40d696
commit
6c962c2a5b
@ -5,7 +5,7 @@ require "formula"
|
|||||||
class LinkageChecker
|
class LinkageChecker
|
||||||
attr_reader :keg, :formula
|
attr_reader :keg, :formula
|
||||||
attr_reader :brewed_dylibs, :system_dylibs, :broken_dylibs, :variable_dylibs
|
attr_reader :brewed_dylibs, :system_dylibs, :broken_dylibs, :variable_dylibs
|
||||||
attr_reader :undeclared_deps, :reverse_links
|
attr_reader :undeclared_deps, :extraneous_deps, :reverse_links
|
||||||
|
|
||||||
def initialize(keg, formula = nil)
|
def initialize(keg, formula = nil)
|
||||||
@keg = keg
|
@keg = keg
|
||||||
@ -16,6 +16,7 @@ class LinkageChecker
|
|||||||
@variable_dylibs = Set.new
|
@variable_dylibs = Set.new
|
||||||
@undeclared_deps = []
|
@undeclared_deps = []
|
||||||
@reverse_links = Hash.new { |h, k| h[k] = Set.new }
|
@reverse_links = Hash.new { |h, k| h[k] = Set.new }
|
||||||
|
@extraneous_deps = []
|
||||||
check_dylibs
|
check_dylibs
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -51,7 +52,7 @@ class LinkageChecker
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@undeclared_deps = check_undeclared_deps if formula
|
@undeclared_deps, @extraneous_deps = check_undeclared_deps if formula
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_undeclared_deps
|
def check_undeclared_deps
|
||||||
@ -77,6 +78,11 @@ class LinkageChecker
|
|||||||
a <=> b
|
a <=> b
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
extraneous_deps = declared_dep_names.reject do |full_name|
|
||||||
|
name = full_name.split("/").last
|
||||||
|
@brewed_dylibs.keys.map{ |x| x.split("/").last }.include? name
|
||||||
|
end
|
||||||
|
return undeclared_deps, extraneous_deps
|
||||||
end
|
end
|
||||||
|
|
||||||
def display_normal_output
|
def display_normal_output
|
||||||
@ -85,6 +91,7 @@ class LinkageChecker
|
|||||||
display_items "Variable-referenced libraries", @variable_dylibs
|
display_items "Variable-referenced libraries", @variable_dylibs
|
||||||
display_items "Missing libraries", @broken_dylibs
|
display_items "Missing libraries", @broken_dylibs
|
||||||
display_items "Possible undeclared dependencies", @undeclared_deps
|
display_items "Possible undeclared dependencies", @undeclared_deps
|
||||||
|
display_items "Possible extraneous dependencies", @extraneous_deps
|
||||||
end
|
end
|
||||||
|
|
||||||
def display_reverse_output
|
def display_reverse_output
|
||||||
@ -113,6 +120,10 @@ class LinkageChecker
|
|||||||
!@undeclared_deps.empty?
|
!@undeclared_deps.empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def extraneous_deps?
|
||||||
|
!@extraneous_deps.empty?
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
# Whether or not dylib is a harmless broken link, meaning that it's
|
# Whether or not dylib is a harmless broken link, meaning that it's
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user