aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/requirements/java_requirement.rb
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/requirements/java_requirement.rb')
-rw-r--r--Library/Homebrew/requirements/java_requirement.rb45
1 files changed, 45 insertions, 0 deletions
diff --git a/Library/Homebrew/requirements/java_requirement.rb b/Library/Homebrew/requirements/java_requirement.rb
new file mode 100644
index 000000000..1c43ad295
--- /dev/null
+++ b/Library/Homebrew/requirements/java_requirement.rb
@@ -0,0 +1,45 @@
+require "language/java"
+
+class JavaRequirement < Requirement
+ fatal true
+ cask "java"
+ download "http://www.oracle.com/technetwork/java/javase/downloads/index.html"
+
+ satisfy { java_version }
+
+ env do
+ java_home = Pathname.new(@java_home)
+ ENV["JAVA_HOME"] = java_home
+ ENV.prepend_path "PATH", java_home/"bin"
+ if (java_home/"include").exist? # Oracle JVM
+ ENV.append_to_cflags "-I#{java_home}/include"
+ ENV.append_to_cflags "-I#{java_home}/include/darwin"
+ else # Apple JVM
+ ENV.append_to_cflags "-I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers/"
+ end
+ end
+
+ def initialize(tags)
+ @version = tags.shift if /(\d\.)+\d/ === tags.first
+ super
+ end
+
+ def java_version
+ args = %w[--failfast]
+ args << "--version" << "#{@version}" if @version
+ @java_home = Utils.popen_read("/usr/libexec/java_home", *args).chomp
+ $?.success?
+ end
+
+ def message
+ version_string = " #{@version}" if @version
+
+ s = "Java#{version_string} is required to install this formula."
+ s += super
+ s
+ end
+
+ def inspect
+ "#<#{self.class.name}: #{name.inspect} #{tags.inspect} version=#{@version.inspect}>"
+ end
+end