formula API: expose uses_from_macos list

This commit is contained in:
EricFromCanada 2019-09-17 18:10:02 -04:00
parent 1544988201
commit 9bd77b1819
3 changed files with 13 additions and 1 deletions

View File

@ -4,12 +4,18 @@ class SoftwareSpec
undef uses_from_macos undef uses_from_macos
def uses_from_macos(deps, **args) def uses_from_macos(deps, **args)
@uses_from_macos_elements ||= []
if deps.is_a?(Hash) if deps.is_a?(Hash)
args = deps args = deps
deps = Hash[*args.shift] deps = Hash[*args.shift]
end end
depends_on(deps) if add_mac_dependency?(args) if add_mac_dependency?(args)
depends_on(deps)
else
@uses_from_macos_elements << deps
end
end end
private private

View File

@ -428,6 +428,9 @@ class Formula
# The {Dependency}s for the currently active {SoftwareSpec}. # The {Dependency}s for the currently active {SoftwareSpec}.
delegate deps: :active_spec delegate deps: :active_spec
# Dependencies provided by macOS for the currently active {SoftwareSpec}.
delegate uses_from_macos_elements: :active_spec
# The {Requirement}s for the currently active {SoftwareSpec}. # The {Requirement}s for the currently active {SoftwareSpec}.
delegate requirements: :active_spec delegate requirements: :active_spec
@ -1589,6 +1592,7 @@ class Formula
# @private # @private
def to_hash def to_hash
dependencies = deps dependencies = deps
uses_from_macos = uses_from_macos_elements || []
hsh = { hsh = {
"name" => name, "name" => name,
@ -1624,6 +1628,7 @@ class Formula
"optional_dependencies" => dependencies.select(&:optional?) "optional_dependencies" => dependencies.select(&:optional?)
.map(&:name) .map(&:name)
.uniq, .uniq,
"uses_from_macos" => uses_from_macos.uniq,
"requirements" => [], "requirements" => [],
"conflicts_with" => conflicts.map(&:name), "conflicts_with" => conflicts.map(&:name),
"caveats" => caveats&.gsub(HOMEBREW_PREFIX, "$(brew --prefix)"), "caveats" => caveats&.gsub(HOMEBREW_PREFIX, "$(brew --prefix)"),

View File

@ -26,6 +26,7 @@ class SoftwareSpec
attr_reader :dependency_collector attr_reader :dependency_collector
attr_reader :bottle_specification attr_reader :bottle_specification
attr_reader :compiler_failures attr_reader :compiler_failures
attr_reader :uses_from_macos_elements
def_delegators :@resource, :stage, :fetch, :verify_download_integrity, :source_modified_time def_delegators :@resource, :stage, :fetch, :verify_download_integrity, :source_modified_time
def_delegators :@resource, :download_name, :cached_download, :clear_cache def_delegators :@resource, :download_name, :cached_download, :clear_cache