diff --git a/Library/Homebrew/extend/os/formula.rb b/Library/Homebrew/extend/os/formula.rb new file mode 100644 index 0000000000..f1aadd7832 --- /dev/null +++ b/Library/Homebrew/extend/os/formula.rb @@ -0,0 +1,3 @@ +# frozen_string_literal: true + +require "extend/os/mac/formula" if OS.mac? diff --git a/Library/Homebrew/extend/os/mac/formula.rb b/Library/Homebrew/extend/os/mac/formula.rb new file mode 100644 index 0000000000..b32dba6477 --- /dev/null +++ b/Library/Homebrew/extend/os/mac/formula.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class Formula + class << self + def uses_from_macos(dep, **args) + depends_on(dep) if add_mac_dependency?(args) + end + + private + + def add_mac_dependency?(args) + args.each { |key, version| args[key] = OS::Mac::Version.from_symbol(version) } + + args.blank? || + args[:before] && OS::Mac.version < args[:before] || + args[:after] && OS::Mac.version >= args[:after] + end + end +end diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index ab4dc62fe1..2c7b3261fd 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -2566,3 +2566,5 @@ class Formula end end end + +require "extend/os/formula"