aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorCamillo Lugaresi2012-06-07 18:34:40 +0200
committerJack Nagel2012-07-01 12:14:06 -0500
commit243b14a0902b981161a03e947e870197188accd4 (patch)
tree34dcb26a5777126a5176bdb68e331a63abfc0cb1 /Library
parent65567eb55fc97925b023737456b1e989d48d68f2 (diff)
downloadbrew-243b14a0902b981161a03e947e870197188accd4.tar.bz2
depends_on :x11 syntax support
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/dependencies.rb41
1 files changed, 34 insertions, 7 deletions
diff --git a/Library/Homebrew/dependencies.rb b/Library/Homebrew/dependencies.rb
index e9cf852dc..6a8d9039b 100644
--- a/Library/Homebrew/dependencies.rb
+++ b/Library/Homebrew/dependencies.rb
@@ -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