blob: d387d3871aaacd447314a29a60d5c440f884c673 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
require 'requirement'
require 'requirements/fortran_dependency'
require 'requirements/language_module_dependency'
require 'requirements/minimum_macos_requirement'
require 'requirements/maximum_macos_requirement'
require 'requirements/mpi_dependency'
require 'requirements/osxfuse_dependency'
require 'requirements/python_dependency'
require 'requirements/tuntap_dependency'
require 'requirements/unsigned_kext_requirement'
require 'requirements/x11_dependency'
class XcodeDependency < Requirement
fatal true
satisfy(:build_env => false) { MacOS::Xcode.installed? }
def message
message = <<-EOS.undent
A full installation of Xcode.app is required to compile this software.
Installing just the Command Line Tools is not sufficient.
EOS
if MacOS.version >= :lion
message += <<-EOS.undent
Xcode can be installed from the App Store.
EOS
else
message += <<-EOS.undent
Xcode can be installed from https://developer.apple.com/downloads/
EOS
end
end
end
class MysqlDependency < Requirement
fatal true
default_formula 'mysql'
satisfy { which 'mysql_config' }
end
class PostgresqlDependency < Requirement
fatal true
default_formula 'postgresql'
satisfy { which 'pg_config' }
end
class TeXDependency < Requirement
fatal true
satisfy { which('tex') || which('latex') }
def message;
if File.exist?("/usr/texbin")
texbin_path = "/usr/texbin"
else
texbin_path = "its bin directory"
end
<<-EOS.undent
A LaTeX distribution is required for Homebrew to install this formula.
You can install MacTeX distribution from:
http://www.tug.org/mactex/
Make sure that "/usr/texbin", or the location you installed it to, is in
your PATH before proceeding.
EOS
end
end
class ArchRequirement < Requirement
fatal true
def initialize(arch)
@arch = arch.pop
super
end
satisfy do
case @arch
when :x86_64 then MacOS.prefer_64_bit?
when :intel, :ppc then Hardware::CPU.type == @arch
end
end
def message
"This formula requires an #{@arch} architecture."
end
end
class MercurialDependency < Requirement
fatal true
default_formula 'mercurial'
satisfy { which('hg') }
end
class GitDependency < Requirement
fatal true
default_formula 'git'
satisfy { !!which('git') }
end
class JavaDependency < Requirement
fatal true
satisfy { java_version }
def initialize(tags)
@version = tags.pop
super
end
def java_version
args = %w[/usr/libexec/java_home --failfast]
args << "--version" << "#{@version}+" if @version
quiet_system(*args)
end
def message
version_string = " #{@version}" if @version
<<-EOS.undent
Java#{version_string} is required to install this formula.
You can install Java from:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Make sure you install both the JRE and JDK.
EOS
end
end
class AprDependency < Requirement
fatal true
satisfy(:build_env => false) { MacOS::CLT.installed? }
def message
message = <<-EOS.undent
Due to packaging problems on Apple's part, software that compiles
against APR requires the standalone Command Line Tools.
EOS
if MacOS.version >= :mavericks
message += <<-EOS.undent
Run `xcode-select --install` to install them.
EOS
else
message += <<-EOS.undent
The standalone package can be obtained from
https://developer.apple.com/downloads/,
or it can be installed via Xcode's preferences.
EOS
end
end
end
|