diff options
Diffstat (limited to 'Library/Homebrew/requirements/java_requirement.rb')
| -rw-r--r-- | Library/Homebrew/requirements/java_requirement.rb | 45 |
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 |
