aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/requirements/java_dependency.rb
diff options
context:
space:
mode:
authorXu Cheng2015-02-26 22:36:04 +0800
committerXu Cheng2015-02-28 01:42:09 +0800
commit222283410731bcfd525c356b96b009aca660911a (patch)
treecc8752a292ff286124c986cb1e2840f69b70b97c /Library/Homebrew/requirements/java_dependency.rb
parentf27f427d95bc181b67ee5522f4781b508e9d9df9 (diff)
downloadbrew-222283410731bcfd525c356b96b009aca660911a.tar.bz2
java: move java_dependency into a separate file and add Language::Java.java_home_env
Also update activemq to test against it Closes Homebrew/homebrew#37218. Signed-off-by: Xu Cheng <xucheng@me.com>
Diffstat (limited to 'Library/Homebrew/requirements/java_dependency.rb')
-rw-r--r--Library/Homebrew/requirements/java_dependency.rb45
1 files changed, 45 insertions, 0 deletions
diff --git a/Library/Homebrew/requirements/java_dependency.rb b/Library/Homebrew/requirements/java_dependency.rb
new file mode 100644
index 000000000..7eb6aefae
--- /dev/null
+++ b/Library/Homebrew/requirements/java_dependency.rb
@@ -0,0 +1,45 @@
+require "language/java"
+
+class JavaDependency < 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