aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/extend
diff options
context:
space:
mode:
authorMike McQuaid2017-02-20 11:04:12 +0000
committerGitHub2017-02-20 11:04:12 +0000
commitfe4b2e97a1bc37a210029b19167e80a059a69720 (patch)
treef5865574f44a14070734d5b6e2d2d0c408dbb3a2 /Library/Homebrew/extend
parent9f31d41fb263718bff98e194df411b8aaea72aba (diff)
parentc49b97dd9c4d65a68494a467d542a42528ea9b38 (diff)
downloadbrew-fe4b2e97a1bc37a210029b19167e80a059a69720.tar.bz2
Merge pull request #1632 from rwhogg/make-java-req-portable
java_requirement: port to Linux and refactor
Diffstat (limited to 'Library/Homebrew/extend')
-rw-r--r--Library/Homebrew/extend/os/linux/requirements/java_requirement.rb16
-rw-r--r--Library/Homebrew/extend/os/mac/requirements/java_requirement.rb35
-rw-r--r--Library/Homebrew/extend/os/requirements/java_requirement.rb7
3 files changed, 58 insertions, 0 deletions
diff --git a/Library/Homebrew/extend/os/linux/requirements/java_requirement.rb b/Library/Homebrew/extend/os/linux/requirements/java_requirement.rb
new file mode 100644
index 000000000..7816f6b6f
--- /dev/null
+++ b/Library/Homebrew/extend/os/linux/requirements/java_requirement.rb
@@ -0,0 +1,16 @@
+require "language/java"
+
+class JavaRequirement < Requirement
+ default_formula "jdk"
+
+ env do
+ env_java_common
+ env_oracle_jdk
+ end
+
+ private
+
+ def oracle_java_os
+ :linux
+ end
+end
diff --git a/Library/Homebrew/extend/os/mac/requirements/java_requirement.rb b/Library/Homebrew/extend/os/mac/requirements/java_requirement.rb
new file mode 100644
index 000000000..451e0001b
--- /dev/null
+++ b/Library/Homebrew/extend/os/mac/requirements/java_requirement.rb
@@ -0,0 +1,35 @@
+class JavaRequirement
+ cask "java"
+
+ env do
+ env_java_common
+ env_oracle_jdk || env_apple
+ end
+
+ private
+
+ def possible_javas
+ javas = []
+ javas << Pathname.new(ENV["JAVA_HOME"])/"bin/java" if ENV["JAVA_HOME"]
+ javas << java_home_cmd
+ javas << which("java")
+ javas
+ end
+
+ def java_home_cmd
+ return nil unless File.executable?("/usr/libexec/java_home")
+ args = %w[--failfast]
+ args << "--version" << @version.to_s if @version
+ java_home = Utils.popen_read("/usr/libexec/java_home", *args).chomp
+ return nil unless $?.success?
+ Pathname.new(java_home)/"bin/java"
+ end
+
+ def env_apple
+ ENV.append_to_cflags "-I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers/"
+ end
+
+ def oracle_java_os
+ :darwin
+ end
+end
diff --git a/Library/Homebrew/extend/os/requirements/java_requirement.rb b/Library/Homebrew/extend/os/requirements/java_requirement.rb
new file mode 100644
index 000000000..b512ada47
--- /dev/null
+++ b/Library/Homebrew/extend/os/requirements/java_requirement.rb
@@ -0,0 +1,7 @@
+require "requirements/java_requirement"
+
+if OS.mac?
+ require "extend/os/mac/requirements/java_requirement"
+elsif OS.linux?
+ require "extend/os/linux/requirements/java_requirement"
+end