Tweak #linux_only_gcc_dep?.

This commit is contained in:
Carlo Cabrera 2022-08-24 15:09:53 +08:00
parent 5f95cc388d
commit e68b1a4a89
No known key found for this signature in database
GPG Key ID: C74D447FC549A1D0

View File

@ -876,15 +876,25 @@ module Homebrew
formula_hash = formula.to_hash_with_variations formula_hash = formula.to_hash_with_variations
linux_deps = formula_hash["dependencies"] linux_deps = formula_hash["dependencies"]
variations_deps = [] return false if linux_deps.exclude?("gcc")
formula_hash["variations"].map do |variation, data|
next if variation == :x86_64_linux
variations = formula_hash["variations"]
# The formula has no variations, so all versions depend on GCC.
return false if variations.blank?
# FIXME: This returns a false positive for formulae that do, for example:
# ```ruby
# on_system :linux, macos: :catalina_or_newer do
# depends_on "gcc"
# end
# ```
variations_deps = []
formula_hash["variations"].each_value do |data|
variations_deps += data["dependencies"] variations_deps += data["dependencies"]
end end
variations_deps.uniq! variations_deps.uniq!
linux_deps.include?("gcc") && variations_deps&.exclude?("gcc") variations_deps.exclude?("gcc")
end end
end end
end end