aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/requirements/java_requirement.rb
diff options
context:
space:
mode:
authorMike McQuaid2015-06-15 09:56:04 +0100
committerMike McQuaid2015-06-16 08:12:01 +0100
commit1e867302891f04ba7857d86ea641315d2e1c8e4d (patch)
tree0ea500fbe4039445995282260b8fe7a465b7995c /Library/Homebrew/requirements/java_requirement.rb
parentf13ac9b0c8c03ccb72aeed29d2969014d7f660e8 (diff)
downloadbrew-1e867302891f04ba7857d86ea641315d2e1c8e4d.tar.bz2
Rename requirements named *Dependency.
Dependency is another similar, related class and it's super confusing to have some Requirements that are named *Dependency. Closes Homebrew/homebrew#38891. Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
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