Add, use uses_from_macos_names.

This strips e.g. `:build` tags.
This commit is contained in:
Mike McQuaid 2021-09-14 09:48:17 +01:00
parent 3e15023269
commit b622c36be6
No known key found for this signature in database
GPG Key ID: 3338A31AFDB1D829
4 changed files with 9 additions and 2 deletions

View File

@ -487,6 +487,9 @@ class Formula
# Dependencies provided by macOS for the currently active {SoftwareSpec}. # Dependencies provided by macOS for the currently active {SoftwareSpec}.
delegate uses_from_macos_elements: :active_spec delegate uses_from_macos_elements: :active_spec
# Dependency names provided by macOS for the currently active {SoftwareSpec}.
delegate uses_from_macos_names: :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

View File

@ -264,7 +264,7 @@ module Homebrew
next unless @core_tap next unless @core_tap
# we want to allow uses_from_macos for aliases but not bare dependencies # we want to allow uses_from_macos for aliases but not bare dependencies
if self.class.aliases.include?(dep.name) && spec.uses_from_macos_elements.exclude?(dep.name) if self.class.aliases.include?(dep.name) && spec.uses_from_macos_names.exclude?(dep.name)
problem "Dependency '#{dep.name}' is an alias; use the canonical name '#{dep.to_formula.full_name}'." problem "Dependency '#{dep.name}' is an alias; use the canonical name '#{dep.to_formula.full_name}'."
end end

View File

@ -13,7 +13,7 @@ module Language
def detected_perl_shebang(formula = self) def detected_perl_shebang(formula = self)
perl_path = if formula.deps.map(&:name).include? "perl" perl_path = if formula.deps.map(&:name).include? "perl"
Formula["perl"].opt_bin/"perl" Formula["perl"].opt_bin/"perl"
elsif formula.uses_from_macos_elements.include? "perl" elsif formula.uses_from_macos_names.include? "perl"
"/usr/bin/perl#{MacOS.preferred_perl_version}" "/usr/bin/perl#{MacOS.preferred_perl_version}"
else else
raise ShebangDetectionError.new("Perl", "formula does not depend on Perl") raise ShebangDetectionError.new("Perl", "formula does not depend on Perl")

View File

@ -186,6 +186,10 @@ class SoftwareSpec
depends_on(spec) depends_on(spec)
end end
def uses_from_macos_names
uses_from_macos_elements.flat_map { |e| e.is_a?(Hash) ? e.keys : e }
end
def deps def deps
dependency_collector.deps dependency_collector.deps
end end