requirements: define cask on base class.
The `cask` attribute doesn't make as much sense on Linux but can be ignored there. The advantage of this change is that (like #4086) it allows figuring out the relevant cask for a formulae requirement on a Linux machine.
This commit is contained in:
parent
55486383a9
commit
a4bada575a
@ -4,29 +4,10 @@ class JavaRequirement < Requirement
|
|||||||
env_oracle_jdk || env_apple
|
env_oracle_jdk || env_apple
|
||||||
end
|
end
|
||||||
|
|
||||||
# A strict Java 8 requirement (1.8) should prompt the user to install
|
|
||||||
# the legacy java8 cask because versions newer than Java 8 are not
|
|
||||||
# completely backwards compatible, and contain breaking changes such as
|
|
||||||
# strong encapsulation of JDK-internal APIs and a modified version scheme
|
|
||||||
# (*.0 not 1.*).
|
|
||||||
def cask
|
|
||||||
if @version.nil? || @version.to_s.end_with?("+") ||
|
|
||||||
@version.to_f >= JAVA_CASK_MAP.keys.max.to_f
|
|
||||||
JAVA_CASK_MAP.fetch(JAVA_CASK_MAP.keys.max)
|
|
||||||
else
|
|
||||||
JAVA_CASK_MAP.fetch("1.8")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
undef possible_javas, oracle_java_os
|
undef possible_javas, oracle_java_os
|
||||||
|
|
||||||
JAVA_CASK_MAP = {
|
|
||||||
"1.8" => "caskroom/versions/java8",
|
|
||||||
"10.0" => "java",
|
|
||||||
}.freeze
|
|
||||||
|
|
||||||
def possible_javas
|
def possible_javas
|
||||||
javas = []
|
javas = []
|
||||||
javas << Pathname.new(ENV["JAVA_HOME"])/"bin/java" if ENV["JAVA_HOME"]
|
javas << Pathname.new(ENV["JAVA_HOME"])/"bin/java" if ENV["JAVA_HOME"]
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
require "requirement"
|
require "requirement"
|
||||||
|
|
||||||
class OsxfuseRequirement < Requirement
|
class OsxfuseRequirement < Requirement
|
||||||
cask "osxfuse"
|
|
||||||
download "https://osxfuse.github.io/"
|
download "https://osxfuse.github.io/"
|
||||||
|
|
||||||
satisfy(build_env: false) { self.class.binary_osxfuse_installed? }
|
satisfy(build_env: false) { self.class.binary_osxfuse_installed? }
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
require "requirement"
|
require "requirement"
|
||||||
|
|
||||||
class X11Requirement < Requirement
|
class X11Requirement < Requirement
|
||||||
cask "xquartz"
|
|
||||||
download "https://xquartz.macosforge.org"
|
download "https://xquartz.macosforge.org"
|
||||||
|
|
||||||
satisfy build_env: false do
|
satisfy build_env: false do
|
||||||
|
@ -4,6 +4,20 @@ class JavaRequirement < Requirement
|
|||||||
fatal true
|
fatal true
|
||||||
download "https://www.oracle.com/technetwork/java/javase/downloads/index.html"
|
download "https://www.oracle.com/technetwork/java/javase/downloads/index.html"
|
||||||
|
|
||||||
|
# A strict Java 8 requirement (1.8) should prompt the user to install
|
||||||
|
# the legacy java8 cask because versions newer than Java 8 are not
|
||||||
|
# completely backwards compatible, and contain breaking changes such as
|
||||||
|
# strong encapsulation of JDK-internal APIs and a modified version scheme
|
||||||
|
# (*.0 not 1.*).
|
||||||
|
def cask
|
||||||
|
if @version.nil? || @version.to_s.end_with?("+") ||
|
||||||
|
@version.to_f >= JAVA_CASK_MAP.keys.max.to_f
|
||||||
|
JAVA_CASK_MAP.fetch(JAVA_CASK_MAP.keys.max)
|
||||||
|
else
|
||||||
|
JAVA_CASK_MAP.fetch("1.8")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
satisfy build_env: false do
|
satisfy build_env: false do
|
||||||
setup_java
|
setup_java
|
||||||
next false unless @java
|
next false unless @java
|
||||||
@ -42,6 +56,11 @@ class JavaRequirement < Requirement
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
JAVA_CASK_MAP = {
|
||||||
|
"1.8" => "caskroom/versions/java8",
|
||||||
|
"10.0" => "java",
|
||||||
|
}.freeze
|
||||||
|
|
||||||
def version_without_plus
|
def version_without_plus
|
||||||
if exact_version?
|
if exact_version?
|
||||||
@version
|
@version
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
require "requirement"
|
require "requirement"
|
||||||
|
|
||||||
class OsxfuseRequirement < Requirement
|
class OsxfuseRequirement < Requirement
|
||||||
|
cask "osxfuse"
|
||||||
fatal true
|
fatal true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ class X11Requirement < Requirement
|
|||||||
|
|
||||||
fatal true
|
fatal true
|
||||||
|
|
||||||
|
cask "xquartz"
|
||||||
env { ENV.x11 }
|
env { ENV.x11 }
|
||||||
|
|
||||||
def initialize(name = "x11", tags = [])
|
def initialize(name = "x11", tags = [])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user