28 lines
		
	
	
		
			768 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			768 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # typed: true
 | |
| # frozen_string_literal: true
 | |
| 
 | |
| # The Library/Homebrew/extend/os/software_spec.rb conditional logic will need to be more nuanced
 | |
| # if this file ever includes more than `uses_from_macos`.
 | |
| class SoftwareSpec
 | |
|   undef uses_from_macos
 | |
| 
 | |
|   def uses_from_macos(deps, bounds = {})
 | |
|     if deps.is_a?(Hash)
 | |
|       bounds = deps.dup
 | |
|       deps = [bounds.shift].to_h
 | |
|     end
 | |
| 
 | |
|     @uses_from_macos_elements << deps
 | |
| 
 | |
|     bounds = bounds.transform_values { |v| MacOS::Version.from_symbol(v) }
 | |
| 
 | |
|     # Linux simulating macOS. Assume oldest macOS version.
 | |
|     return if Homebrew::EnvConfig.simulate_macos_on_linux? && !bounds.key?(:since)
 | |
| 
 | |
|     # macOS new enough for dependency to not be required.
 | |
|     return if MacOS.version >= bounds[:since]
 | |
| 
 | |
|     depends_on deps
 | |
|   end
 | |
| end
 | 
