formula.rb: update missing libs feature

1. Raise an exception on macOS.
2. Verify that the missing libraries are specified either as Strings or
   Regular Expressions.

Signed-off-by: Maxim Belkin <maxim.belkin@gmail.com>
This commit is contained in:
Maxim Belkin 2020-07-21 12:50:22 +00:00
parent 6b49d60954
commit 7080ad5ebc
2 changed files with 13 additions and 3 deletions

View File

@ -19,7 +19,7 @@ class Formula
when Regexp
x.match? lib
when String
lib.include? x
lib.to_s.include? x
end
end
end
@ -31,9 +31,15 @@ class Formula
yield
end
undef ignore_missing_libraries
def ignore_missing_libraries(*libs)
libs.flatten!
allowed_missing_libraries.merge(libs)
libraries = libs.flatten
unless libraries.all? { |x| x.is_a?(String) || x.is_a?(Regexp) }
raise FormulaSpecificationError, "#{__method__} can handle Strings and Regular Expressions only"
end
allowed_missing_libraries.merge(libraries)
end
# @private

View File

@ -2763,6 +2763,10 @@ class Formula
def link_overwrite_paths
@link_overwrite_paths ||= Set.new
end
def ignore_missing_libraries(*)
raise FormulaSpecificationError, "#{__method__} is available on Linux only"
end
end
end