diff options
| author | Camillo Lugaresi | 2012-06-07 18:34:40 +0200 |
|---|---|---|
| committer | Jack Nagel | 2012-07-01 12:14:06 -0500 |
| commit | 243b14a0902b981161a03e947e870197188accd4 (patch) | |
| tree | 34dcb26a5777126a5176bdb68e331a63abfc0cb1 /Library | |
| parent | 65567eb55fc97925b023737456b1e989d48d68f2 (diff) | |
| download | brew-243b14a0902b981161a03e947e870197188accd4.tar.bz2 | |
depends_on :x11 syntax support
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/dependencies.rb | 41 |
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 |
