diff options
| author | Xu Cheng | 2015-02-26 22:36:04 +0800 |
|---|---|---|
| committer | Xu Cheng | 2015-02-28 01:42:09 +0800 |
| commit | 222283410731bcfd525c356b96b009aca660911a (patch) | |
| tree | cc8752a292ff286124c986cb1e2840f69b70b97c /Library/Homebrew/requirements/java_dependency.rb | |
| parent | f27f427d95bc181b67ee5522f4781b508e9d9df9 (diff) | |
| download | brew-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.rb | 45 |
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 |
