| 
									
										
										
										
											2013-01-26 20:05:39 -06:00
										 |  |  | require 'requirement' | 
					
						
							| 
									
										
										
										
											2013-04-02 15:33:35 -05:00
										 |  |  | require 'requirements/conflict_requirement' | 
					
						
							|  |  |  | require 'requirements/language_module_dependency' | 
					
						
							|  |  |  | require 'requirements/x11_dependency' | 
					
						
							|  |  |  | require 'requirements/mpi_dependency' | 
					
						
							| 
									
										
										
										
											2013-01-21 10:33:56 +01:00
										 |  |  | require 'requirements/python_dependency' | 
					
						
							| 
									
										
										
										
											2012-10-24 18:06:00 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-24 18:17:43 -05:00
										 |  |  | class XcodeDependency < Requirement | 
					
						
							| 
									
										
										
										
											2012-12-23 19:44:15 -06:00
										 |  |  |   fatal true | 
					
						
							| 
									
										
										
										
											2013-01-23 00:26:30 -06:00
										 |  |  |   build true | 
					
						
							| 
									
										
										
										
											2012-10-24 18:06:00 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-01-19 20:45:59 -06:00
										 |  |  |   satisfy(:build_env => false) { MacOS::Xcode.installed? } | 
					
						
							| 
									
										
										
										
											2012-10-24 18:06:00 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def message; <<-EOS.undent
 | 
					
						
							| 
									
										
										
										
											2012-10-24 18:17:43 -05:00
										 |  |  |     A full installation of Xcode.app is required to compile this software. | 
					
						
							| 
									
										
										
										
											2012-10-24 18:06:00 -05:00
										 |  |  |     Installing just the Command Line Tools is not sufficent. | 
					
						
							|  |  |  |     EOS | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							| 
									
										
										
										
											2012-11-05 20:03:26 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-02-12 16:24:30 -06:00
										 |  |  | class MysqlDependency < Requirement | 
					
						
							| 
									
										
										
										
											2012-12-23 19:44:15 -06:00
										 |  |  |   fatal true | 
					
						
							| 
									
										
										
										
											2013-05-10 13:35:38 +01:00
										 |  |  |   default_formula 'mysql' | 
					
						
							| 
									
										
										
										
											2012-11-05 20:03:26 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-01-19 20:45:59 -06:00
										 |  |  |   satisfy { which 'mysql_config' } | 
					
						
							| 
									
										
										
										
											2012-11-05 20:03:26 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def message; <<-EOS.undent
 | 
					
						
							|  |  |  |     MySQL is required to install. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     You can install this with Homebrew using: | 
					
						
							|  |  |  |       brew install mysql-connector-c | 
					
						
							|  |  |  |         For MySQL client libraries only. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       brew install mysql | 
					
						
							|  |  |  |         For MySQL server. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Or you can use an official installer from: | 
					
						
							|  |  |  |       http://dev.mysql.com/downloads/mysql/ | 
					
						
							|  |  |  |     EOS | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-02-12 16:24:30 -06:00
										 |  |  | class PostgresqlDependency < Requirement | 
					
						
							| 
									
										
										
										
											2012-12-23 19:44:15 -06:00
										 |  |  |   fatal true | 
					
						
							| 
									
										
										
										
											2013-06-02 17:14:42 -05:00
										 |  |  |   default_formula 'postgresql' | 
					
						
							| 
									
										
										
										
											2012-11-05 20:03:26 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-01-19 20:45:59 -06:00
										 |  |  |   satisfy { which 'pg_config' } | 
					
						
							| 
									
										
										
										
											2012-11-05 20:03:26 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def message | 
					
						
							|  |  |  |     <<-EOS.undent
 | 
					
						
							|  |  |  |       Postgres is required to install. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       You can install this with Homebrew using: | 
					
						
							|  |  |  |         brew install postgres | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       Or you can use an official installer from: | 
					
						
							|  |  |  |         http://www.postgresql.org/download/macosx/ | 
					
						
							|  |  |  |     EOS | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							| 
									
										
										
										
											2012-12-13 22:23:06 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-02-12 16:24:30 -06:00
										 |  |  | class TeXDependency < Requirement | 
					
						
							| 
									
										
										
										
											2012-12-13 22:23:06 -08:00
										 |  |  |   fatal true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-01-19 20:45:59 -06:00
										 |  |  |   satisfy { which('tex') || which('latex') } | 
					
						
							| 
									
										
										
										
											2012-12-13 22:23:06 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def message; <<-EOS.undent
 | 
					
						
							|  |  |  |     A LaTeX distribution is required to install. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     You can install MacTeX distribution from: | 
					
						
							|  |  |  |       http://www.tug.org/mactex/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-01-14 15:18:12 -08:00
										 |  |  |     Make sure that its bin directory is in your PATH before proceeding. | 
					
						
							| 
									
										
										
										
											2012-12-13 22:23:06 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     You may also need to restore the ownership of Homebrew install: | 
					
						
							|  |  |  |       sudo chown -R $USER `brew --prefix` | 
					
						
							|  |  |  |     EOS | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							| 
									
										
										
										
											2013-01-23 00:26:30 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | class CLTDependency < Requirement | 
					
						
							|  |  |  |   fatal true | 
					
						
							| 
									
										
										
										
											2013-01-23 00:26:30 -06:00
										 |  |  |   build true | 
					
						
							| 
									
										
										
										
											2013-01-23 00:26:30 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-01 11:53:24 -05:00
										 |  |  |   satisfy(:build_env => false) { MacOS::CLT.installed? } | 
					
						
							| 
									
										
										
										
											2013-01-23 00:26:30 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def message; <<-EOS.undent
 | 
					
						
							|  |  |  |     The Command Line Tools for Xcode are required to compile this software. | 
					
						
							|  |  |  |     The standalone package can be obtained from http://connect.apple.com, | 
					
						
							|  |  |  |     or it can be installed via Xcode's preferences. | 
					
						
							|  |  |  |     EOS | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							| 
									
										
										
										
											2013-04-01 11:53:13 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | class ArchRequirement < Requirement | 
					
						
							|  |  |  |   fatal true | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def initialize(arch) | 
					
						
							| 
									
										
										
										
											2013-05-06 22:49:31 -05:00
										 |  |  |     @arch = arch.pop | 
					
						
							| 
									
										
										
										
											2013-04-01 11:53:13 -05:00
										 |  |  |     super | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   satisfy do | 
					
						
							|  |  |  |     case @arch | 
					
						
							|  |  |  |     when :x86_64 then MacOS.prefer_64_bit? | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-02 15:33:35 -05:00
										 |  |  |   def message | 
					
						
							|  |  |  |     "This formula requires an #{@arch} architecture." | 
					
						
							| 
									
										
										
										
											2013-04-01 11:53:13 -05:00
										 |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							| 
									
										
										
										
											2013-04-17 10:01:38 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | class MercurialDependency < Requirement | 
					
						
							|  |  |  |   fatal true | 
					
						
							| 
									
										
										
										
											2013-05-10 13:35:38 +01:00
										 |  |  |   default_formula 'mercurial' | 
					
						
							| 
									
										
										
										
											2013-04-17 10:01:38 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |   satisfy { which('hg') } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def message; <<-EOS.undent
 | 
					
						
							|  |  |  |     Mercurial is needed to install this software. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     You can install this with Homebrew using: | 
					
						
							|  |  |  |       brew install mercurial | 
					
						
							|  |  |  |     EOS | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |