From 5a214de68d52eef0bbf99f740dc22c721dd02233 Mon Sep 17 00:00:00 2001 From: Bob W. Hogg Date: Sun, 4 Dec 2016 18:43:46 -0800 Subject: java_requirement: port to Linux and refactor Split the core requirement class into generic, Linux-specific, and macOS-specific parts. Additionally, the Linux version is now able to detect Java versions (the previous Linuxbrew implementation was only able to detect if Java was present at all.) --- .../os/linux/requirements/java_requirement.rb | 19 ++++++++++ .../extend/os/mac/requirements/java_requirement.rb | 40 ++++++++++++++++++++++ .../extend/os/requirements/java_requirement.rb | 7 ++++ 3 files changed, 66 insertions(+) create mode 100644 Library/Homebrew/extend/os/linux/requirements/java_requirement.rb create mode 100644 Library/Homebrew/extend/os/mac/requirements/java_requirement.rb create mode 100644 Library/Homebrew/extend/os/requirements/java_requirement.rb (limited to 'Library/Homebrew/extend') 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..c8cbabb0d --- /dev/null +++ b/Library/Homebrew/extend/os/linux/requirements/java_requirement.rb @@ -0,0 +1,19 @@ +require "language/java" + +class JavaRequirement < Requirement + default_formula "jdk" + + env do + next unless @java_home + env_java_common + if (Pathname.new(@java_home)/"include").exist? # Oracle JVM + env_oracle_jdk + end + 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..9c60aff95 --- /dev/null +++ b/Library/Homebrew/extend/os/mac/requirements/java_requirement.rb @@ -0,0 +1,40 @@ +class JavaRequirement + cask "java" + + env do + env_java_common + java_home = Pathname.new(@java_home) + if (java_home/"include").exist? # Oracle JVM + env_oracle_jdk + else # Apple JVM + env_apple + end + 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 -- cgit v1.2.3 From c49b97dd9c4d65a68494a467d542a42528ea9b38 Mon Sep 17 00:00:00 2001 From: Bob W. Hogg Date: Wed, 15 Feb 2017 21:47:08 -0800 Subject: Code review cleanups --- Library/Homebrew/extend/os/linux/requirements/java_requirement.rb | 5 +---- Library/Homebrew/extend/os/mac/requirements/java_requirement.rb | 7 +------ 2 files changed, 2 insertions(+), 10 deletions(-) (limited to 'Library/Homebrew/extend') diff --git a/Library/Homebrew/extend/os/linux/requirements/java_requirement.rb b/Library/Homebrew/extend/os/linux/requirements/java_requirement.rb index c8cbabb0d..7816f6b6f 100644 --- a/Library/Homebrew/extend/os/linux/requirements/java_requirement.rb +++ b/Library/Homebrew/extend/os/linux/requirements/java_requirement.rb @@ -4,11 +4,8 @@ class JavaRequirement < Requirement default_formula "jdk" env do - next unless @java_home env_java_common - if (Pathname.new(@java_home)/"include").exist? # Oracle JVM - env_oracle_jdk - end + env_oracle_jdk end private diff --git a/Library/Homebrew/extend/os/mac/requirements/java_requirement.rb b/Library/Homebrew/extend/os/mac/requirements/java_requirement.rb index 9c60aff95..451e0001b 100644 --- a/Library/Homebrew/extend/os/mac/requirements/java_requirement.rb +++ b/Library/Homebrew/extend/os/mac/requirements/java_requirement.rb @@ -3,12 +3,7 @@ class JavaRequirement env do env_java_common - java_home = Pathname.new(@java_home) - if (java_home/"include").exist? # Oracle JVM - env_oracle_jdk - else # Apple JVM - env_apple - end + env_oracle_jdk || env_apple end private -- cgit v1.2.3