| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  | require "requirement" | 
					
						
							|  |  |  | require "requirements/apr_requirement" | 
					
						
							|  |  |  | require "requirements/fortran_requirement" | 
					
						
							|  |  |  | require "requirements/language_module_requirement" | 
					
						
							|  |  |  | require "requirements/minimum_macos_requirement" | 
					
						
							|  |  |  | require "requirements/maximum_macos_requirement" | 
					
						
							|  |  |  | require "requirements/mpi_requirement" | 
					
						
							|  |  |  | require "requirements/osxfuse_requirement" | 
					
						
							|  |  |  | require "requirements/python_requirement" | 
					
						
							|  |  |  | require "requirements/java_requirement" | 
					
						
							|  |  |  | require "requirements/ruby_requirement" | 
					
						
							|  |  |  | require "requirements/tuntap_requirement" | 
					
						
							|  |  |  | require "requirements/unsigned_kext_requirement" | 
					
						
							|  |  |  | require "requirements/x11_requirement" | 
					
						
							|  |  |  | require "requirements/emacs_requirement" | 
					
						
							| 
									
										
										
										
											2012-10-24 18:06:00 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-15 09:56:04 +01:00
										 |  |  | class XcodeRequirement < Requirement | 
					
						
							| 
									
										
										
										
											2012-12-23 19:44:15 -06:00
										 |  |  |   fatal true | 
					
						
							| 
									
										
										
										
											2012-10-24 18:06:00 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-09 09:26:38 +00:00
										 |  |  |   satisfy(:build_env => false) { xcode_installed_version } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def initialize(tags) | 
					
						
							| 
									
										
										
										
											2014-12-09 11:48:00 -05:00
										 |  |  |     @version = tags.find { |t| tags.delete(t) if /(\d\.)+\d/ === t } | 
					
						
							| 
									
										
										
										
											2014-12-09 09:26:38 +00:00
										 |  |  |     super | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def xcode_installed_version | 
					
						
							|  |  |  |     return false unless MacOS::Xcode.installed? | 
					
						
							| 
									
										
										
										
											2014-12-09 11:48:00 -05:00
										 |  |  |     return true unless @version | 
					
						
							| 
									
										
										
										
											2014-12-09 09:26:38 +00:00
										 |  |  |     MacOS::Xcode.version >= @version | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2012-10-24 18:06:00 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-23 17:44:43 +01:00
										 |  |  |   def message | 
					
						
							| 
									
										
										
										
											2014-12-09 09:26:38 +00:00
										 |  |  |     version = " #{@version}" if @version | 
					
						
							| 
									
										
										
										
											2013-10-23 17:44:43 +01:00
										 |  |  |     message = <<-EOS.undent
 | 
					
						
							| 
									
										
										
										
											2014-12-09 09:26:38 +00:00
										 |  |  |       A full installation of Xcode.app#{version} is required to compile this software. | 
					
						
							| 
									
										
										
										
											2013-10-23 17:44:43 +01:00
										 |  |  |       Installing just the Command Line Tools is not sufficient. | 
					
						
							| 
									
										
										
										
											2012-10-24 18:06:00 -05:00
										 |  |  |     EOS | 
					
						
							| 
									
										
										
										
											2013-10-23 17:44:43 +01:00
										 |  |  |     if MacOS.version >= :lion | 
					
						
							|  |  |  |       message += <<-EOS.undent
 | 
					
						
							|  |  |  |         Xcode can be installed from the App Store. | 
					
						
							|  |  |  |       EOS | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |       message += <<-EOS.undent
 | 
					
						
							| 
									
										
										
										
											2015-07-14 19:13:14 -04:00
										 |  |  |         Xcode can be installed from https://developer.apple.com/xcode/downloads/ | 
					
						
							| 
									
										
										
										
											2013-10-23 17:44:43 +01:00
										 |  |  |       EOS | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2012-10-24 18:06:00 -05:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2015-02-23 23:41:43 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def inspect | 
					
						
							|  |  |  |     "#<#{self.class.name}: #{name.inspect} #{tags.inspect} version=#{@version.inspect}>" | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2012-10-24 18:06:00 -05:00
										 |  |  | end | 
					
						
							| 
									
										
										
										
											2012-11-05 20:03:26 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-15 09:56:04 +01:00
										 |  |  | class MysqlRequirement < Requirement | 
					
						
							| 
									
										
										
										
											2012-12-23 19:44:15 -06:00
										 |  |  |   fatal true | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |   default_formula "mysql" | 
					
						
							| 
									
										
										
										
											2012-11-05 20:03:26 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |   satisfy { which "mysql_config" } | 
					
						
							| 
									
										
										
										
											2012-11-05 20:03:26 -06:00
										 |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-15 09:56:04 +01:00
										 |  |  | class PostgresqlRequirement < Requirement | 
					
						
							| 
									
										
										
										
											2012-12-23 19:44:15 -06:00
										 |  |  |   fatal true | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |   default_formula "postgresql" | 
					
						
							| 
									
										
										
										
											2012-11-05 20:03:26 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |   satisfy { which "pg_config" } | 
					
						
							| 
									
										
										
										
											2012-11-05 20:03:26 -06:00
										 |  |  | end | 
					
						
							| 
									
										
										
										
											2012-12-13 22:23:06 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-15 09:56:04 +01:00
										 |  |  | class GPGRequirement < Requirement | 
					
						
							| 
									
										
										
										
											2015-01-18 21:29:57 +08:00
										 |  |  |   fatal true | 
					
						
							|  |  |  |   default_formula "gpg" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   satisfy { which("gpg") || which("gpg2") } | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-15 09:56:04 +01:00
										 |  |  | class TeXRequirement < Requirement | 
					
						
							| 
									
										
										
										
											2012-12-13 22:23:06 -08:00
										 |  |  |   fatal true | 
					
						
							| 
									
										
										
										
											2014-12-25 20:44:43 +00:00
										 |  |  |   cask "mactex" | 
					
						
							| 
									
										
										
										
											2015-01-04 05:02:27 +01:00
										 |  |  |   download "https://www.tug.org/mactex/" | 
					
						
							| 
									
										
										
										
											2012-12-13 22:23:06 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |   satisfy { which("tex") || which("latex") } | 
					
						
							| 
									
										
										
										
											2012-12-13 22:23:06 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-25 20:44:43 +00:00
										 |  |  |   def message | 
					
						
							|  |  |  |     s = <<-EOS.undent
 | 
					
						
							|  |  |  |       A LaTeX distribution is required for Homebrew to install this formula. | 
					
						
							| 
									
										
										
										
											2012-12-13 22:23:06 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-25 20:44:43 +00:00
										 |  |  |       Make sure that "/usr/texbin", or the location you installed it to, is in | 
					
						
							|  |  |  |       your PATH before proceeding. | 
					
						
							| 
									
										
										
										
											2012-12-13 22:23:06 -08:00
										 |  |  |     EOS | 
					
						
							| 
									
										
										
										
											2014-12-25 20:44:43 +00:00
										 |  |  |     s += super | 
					
						
							|  |  |  |     s | 
					
						
							| 
									
										
										
										
											2012-12-13 22:23:06 -08:00
										 |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							| 
									
										
										
										
											2013-01-23 00:26:30 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-25 23:55:45 -04:00
										 |  |  |   satisfy(:build_env => false) do | 
					
						
							| 
									
										
										
										
											2013-04-01 11:53:13 -05:00
										 |  |  |     case @arch | 
					
						
							|  |  |  |     when :x86_64 then MacOS.prefer_64_bit? | 
					
						
							| 
									
										
										
										
											2013-08-01 19:57:05 -07:00
										 |  |  |     when :intel, :ppc then Hardware::CPU.type == @arch | 
					
						
							| 
									
										
										
										
											2013-04-01 11:53:13 -05:00
										 |  |  |     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
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-15 09:56:04 +01:00
										 |  |  | class MercurialRequirement < Requirement | 
					
						
							| 
									
										
										
										
											2013-04-17 10:01:38 -07:00
										 |  |  |   fatal true | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |   default_formula "mercurial" | 
					
						
							| 
									
										
										
										
											2013-04-17 10:01:38 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |   satisfy { which("hg") } | 
					
						
							| 
									
										
										
										
											2013-04-17 10:01:38 -07:00
										 |  |  | end | 
					
						
							| 
									
										
										
										
											2013-09-28 16:37:05 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-15 09:56:04 +01:00
										 |  |  | class GitRequirement < Requirement | 
					
						
							| 
									
										
										
										
											2013-09-28 16:37:05 -05:00
										 |  |  |   fatal true | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |   default_formula "git" | 
					
						
							|  |  |  |   satisfy { !!which("git") } | 
					
						
							| 
									
										
										
										
											2013-09-28 16:37:05 -05:00
										 |  |  | end | 
					
						
							| 
									
										
										
										
											2014-07-21 02:11:08 -07:00
										 |  |  | 
 |