From 243b14a0902b981161a03e947e870197188accd4 Mon Sep 17 00:00:00 2001 From: Camillo Lugaresi Date: Thu, 7 Jun 2012 18:34:40 +0200 Subject: depends_on :x11 syntax support --- Library/Homebrew/dependencies.rb | 41 +++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) (limited to 'Library') 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 -- cgit v1.2.3