diff --git a/Library/Homebrew/requirement.rb b/Library/Homebrew/requirement.rb index c202738958..4cae1f2468 100644 --- a/Library/Homebrew/requirement.rb +++ b/Library/Homebrew/requirement.rb @@ -75,6 +75,11 @@ class Requirement end class << self + # The default formula to install to satisfy this requirement. + def default_formula(val=nil) + val.nil? ? @default_formula : @default_formula = val.to_s + end + def fatal(val=nil) val.nil? ? @fatal : @fatal = val end @@ -138,6 +143,13 @@ class Requirement next if prune + # TODO: Do this in a cleaner way, perhaps with another type of + # dependency type. + if req.class.default_formula + dependent.class.depends_on(req.class.default_formula) + next + end + reqs << req end end diff --git a/Library/Homebrew/requirements.rb b/Library/Homebrew/requirements.rb index 29e61b6963..bdbe71ee00 100644 --- a/Library/Homebrew/requirements.rb +++ b/Library/Homebrew/requirements.rb @@ -19,6 +19,7 @@ end class MysqlDependency < Requirement fatal true + default_formula 'mysql' satisfy { which 'mysql_config' } @@ -40,6 +41,7 @@ end class PostgresqlDependency < Requirement fatal true + default_formula 'postgres' satisfy { which 'pg_config' } @@ -110,6 +112,7 @@ end class MercurialDependency < Requirement fatal true + default_formula 'mercurial' satisfy { which('hg') } diff --git a/Library/Homebrew/requirements/mpi_dependency.rb b/Library/Homebrew/requirements/mpi_dependency.rb index b51efc303c..e83f7d80c9 100644 --- a/Library/Homebrew/requirements/mpi_dependency.rb +++ b/Library/Homebrew/requirements/mpi_dependency.rb @@ -9,6 +9,8 @@ class MPIDependency < Requirement fatal true + default_formula 'open-mpi' + env :userpaths def initialize *lang_list