JavaDependency: set JAVA_HOME and CFLAGS in superenv

This commit is contained in:
Xu Cheng 2015-02-23 21:51:23 +08:00
parent cf3ee4546f
commit f7670c9106

View File

@ -129,6 +129,18 @@ class JavaDependency < Requirement
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)
# ignore trailing +
@version = tags.shift.sub(/\+$/, "") if /(\d\.)+\d/ === tags.first
@ -136,9 +148,10 @@ class JavaDependency < Requirement
end
def java_version
args = %w[/usr/libexec/java_home --failfast]
args = %w[--failfast]
args << "--version" << "#{@version}+" if @version
quiet_system(*args)
@java_home = Utils.popen_read("/usr/libexec/java_home", *args).chomp
$?.success?
end
def message