depends_on :x11 syntax support
This commit is contained in:
parent
65567eb55f
commit
243b14a090
@ -26,25 +26,31 @@ class DependencyCollector
|
||||
|
||||
def add spec
|
||||
case spec
|
||||
when :x11 then @external_deps << X11Dependency.new
|
||||
when String then @deps << Dependency.new(spec)
|
||||
when Formula then @deps << Dependency.new(spec.name)
|
||||
when Dependency then @deps << spec
|
||||
when Requirement then @external_deps << spec
|
||||
when Hash
|
||||
key, value = spec.shift
|
||||
case value
|
||||
when Array
|
||||
@deps << Dependency.new(key, value)
|
||||
when *LANGUAGE_MODULES
|
||||
@external_deps << LanguageModuleDependency.new(value, key)
|
||||
if key == :x11
|
||||
@external_deps << X11Dependency.new(value)
|
||||
else
|
||||
# :optional, :recommended, :build, :universal and "32bit" are predefined
|
||||
@deps << Dependency.new(key, [value])
|
||||
case value
|
||||
when Array
|
||||
@deps << Dependency.new(key, value)
|
||||
when *LANGUAGE_MODULES
|
||||
@external_deps << LanguageModuleDependency.new(value, key)
|
||||
else
|
||||
# :optional, :recommended, :build, :universal and "32bit" are predefined
|
||||
@deps << Dependency.new(key, [value])
|
||||
end
|
||||
end
|
||||
else
|
||||
raise "Unsupported type #{spec.class} for #{spec}"
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
@ -141,3 +147,24 @@ class LanguageModuleDependency < Requirement
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class X11Dependency < Requirement
|
||||
|
||||
def initialize min_version=nil
|
||||
@min_version = min_version
|
||||
end
|
||||
|
||||
def fatal?; true; end
|
||||
|
||||
def satisfied?
|
||||
MacOS.x11_installed? and (@min_version == nil or @min_version <= MacOS.xquartz_version)
|
||||
end
|
||||
|
||||
def message; <<-EOS.undent
|
||||
Unsatisfied dependency: XQuartz #{@min_version}
|
||||
Please install the latest version of XQuartz:
|
||||
https://xquartz.macosforge.org
|
||||
EOS
|
||||
end
|
||||
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user