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 :java then java_dep_if_needed(tags)
|
||||||
when :linux then LinuxRequirement.new(tags)
|
when :linux then LinuxRequirement.new(tags)
|
||||||
when :macos then MacOSRequirement.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 :osxfuse then OsxfuseRequirement.new(tags)
|
||||||
when :tuntap then TuntapRequirement.new(tags)
|
when :tuntap then TuntapRequirement.new(tags)
|
||||||
when :x11 then X11Requirement.new(tags)
|
when :x11 then X11Requirement.new(tags)
|
||||||
|
@ -6,7 +6,6 @@ require "requirements/codesign_requirement"
|
|||||||
require "requirements/java_requirement"
|
require "requirements/java_requirement"
|
||||||
require "requirements/linux_requirement"
|
require "requirements/linux_requirement"
|
||||||
require "requirements/macos_requirement"
|
require "requirements/macos_requirement"
|
||||||
require "requirements/maximum_macos_requirement"
|
|
||||||
require "requirements/osxfuse_requirement"
|
require "requirements/osxfuse_requirement"
|
||||||
require "requirements/tuntap_requirement"
|
require "requirements/tuntap_requirement"
|
||||||
require "requirements/x11_requirement"
|
require "requirements/x11_requirement"
|
||||||
|
@ -5,17 +5,18 @@ require "requirement"
|
|||||||
class MacOSRequirement < Requirement
|
class MacOSRequirement < Requirement
|
||||||
fatal true
|
fatal true
|
||||||
|
|
||||||
def initialize(tags = [])
|
def initialize(tags = [], comparator: ">=")
|
||||||
@version = MacOS::Version.from_symbol(tags.shift) unless tags.empty?
|
@version = MacOS::Version.from_symbol(tags.shift) unless tags.empty?
|
||||||
|
@comparator = comparator
|
||||||
super(tags)
|
super(tags)
|
||||||
end
|
end
|
||||||
|
|
||||||
def minimum_version_specified?
|
def version_specified?
|
||||||
OS.mac? && @version
|
OS.mac? && @version
|
||||||
end
|
end
|
||||||
|
|
||||||
satisfy(build_env: false) do
|
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 OS.mac?
|
||||||
next true if @version
|
next true if @version
|
||||||
|
|
||||||
@ -23,14 +24,24 @@ class MacOSRequirement < Requirement
|
|||||||
end
|
end
|
||||||
|
|
||||||
def message
|
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
|
end
|
||||||
|
|
||||||
def display_s
|
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
|
||||||
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
|
describe "#satisfied?" do
|
||||||
it "returns true on macOS" 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
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user