 1e86730289
			
		
	
	
		1e86730289
		
	
	
	
	
		
			
			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>
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| 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
 |