Merge MaximumMacOSRequirement
into MacOSRequirement
.
This commit is contained in:
parent
84c5f40793
commit
78aee4fed3
@ -125,7 +125,7 @@ class DependencyCollector
|
||||
when :java then java_dep_if_needed(tags)
|
||||
when :linux then LinuxRequirement.new(tags)
|
||||
when :macos then MacOSRequirement.new(tags)
|
||||
when :maximum_macos then MaximumMacOSRequirement.new(tags)
|
||||
when :maximum_macos then MacOSRequirement.new(tags, comparator: "<=")
|
||||
when :osxfuse then OsxfuseRequirement.new(tags)
|
||||
when :tuntap then TuntapRequirement.new(tags)
|
||||
when :x11 then X11Requirement.new(tags)
|
||||
|
@ -6,7 +6,6 @@ require "requirements/codesign_requirement"
|
||||
require "requirements/java_requirement"
|
||||
require "requirements/linux_requirement"
|
||||
require "requirements/macos_requirement"
|
||||
require "requirements/maximum_macos_requirement"
|
||||
require "requirements/osxfuse_requirement"
|
||||
require "requirements/tuntap_requirement"
|
||||
require "requirements/x11_requirement"
|
||||
|
@ -5,17 +5,18 @@ require "requirement"
|
||||
class MacOSRequirement < Requirement
|
||||
fatal true
|
||||
|
||||
def initialize(tags = [])
|
||||
def initialize(tags = [], comparator: ">=")
|
||||
@version = MacOS::Version.from_symbol(tags.shift) unless tags.empty?
|
||||
@comparator = comparator
|
||||
super(tags)
|
||||
end
|
||||
|
||||
def minimum_version_specified?
|
||||
def version_specified?
|
||||
OS.mac? && @version
|
||||
end
|
||||
|
||||
satisfy(build_env: false) do
|
||||
next MacOS.version >= @version if minimum_version_specified?
|
||||
next MacOS.version.public_send(@comparator, @version) if version_specified?
|
||||
next true if OS.mac?
|
||||
next true if @version
|
||||
|
||||
@ -23,14 +24,24 @@ class MacOSRequirement < Requirement
|
||||
end
|
||||
|
||||
def message
|
||||
return "macOS is required." unless minimum_version_specified?
|
||||
return "macOS is required." unless version_specified?
|
||||
|
||||
"macOS #{@version.pretty_name} or newer is required."
|
||||
case @comparator
|
||||
when ">="
|
||||
"macOS #{@version.pretty_name} or newer is required."
|
||||
when "<="
|
||||
<<~EOS
|
||||
This formula either does not compile or function as expected on macOS
|
||||
versions newer than #{@version.pretty_name} due to an upstream incompatibility.
|
||||
EOS
|
||||
else
|
||||
"macOS #{@version.pretty_name} is required."
|
||||
end
|
||||
end
|
||||
|
||||
def display_s
|
||||
return "macOS is required" unless minimum_version_specified?
|
||||
return "macOS is required" unless version_specified?
|
||||
|
||||
"macOS >= #{@version}"
|
||||
"macOS #{@comparator} #{@version}"
|
||||
end
|
||||
end
|
||||
|
@ -1,25 +0,0 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "requirement"
|
||||
|
||||
class MaximumMacOSRequirement < Requirement
|
||||
fatal true
|
||||
|
||||
def initialize(tags)
|
||||
@version = MacOS::Version.from_symbol(tags.shift)
|
||||
super(tags)
|
||||
end
|
||||
|
||||
satisfy(build_env: false) { MacOS.version <= @version }
|
||||
|
||||
def message
|
||||
<<~EOS
|
||||
This formula either does not compile or function as expected on macOS
|
||||
versions newer than #{@version.pretty_name} due to an upstream incompatibility.
|
||||
EOS
|
||||
end
|
||||
|
||||
def display_s
|
||||
"macOS <= #{@version}"
|
||||
end
|
||||
end
|
@ -7,7 +7,17 @@ describe MacOSRequirement do
|
||||
|
||||
describe "#satisfied?" do
|
||||
it "returns true on macOS" do
|
||||
expect(requirement.satisfied?).to eq(OS.mac?)
|
||||
expect(requirement.satisfied?).to eq OS.mac?
|
||||
end
|
||||
|
||||
it "supports version symbols", :needs_macos do
|
||||
requirement = described_class.new([MacOS.version.to_sym])
|
||||
expect(requirement).to be_satisfied
|
||||
end
|
||||
|
||||
it "supports maximum versions", :needs_macos do
|
||||
requirement = described_class.new([:mavericks], comparator: "<=")
|
||||
expect(requirement.satisfied?).to eq MacOS.version <= :mavericks
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user