58 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # typed: strict
 | |
| # frozen_string_literal: true
 | |
| 
 | |
| module OS
 | |
|   module Linux
 | |
|     module Formula
 | |
|       extend T::Helpers
 | |
| 
 | |
|       requires_ancestor { ::Formula }
 | |
| 
 | |
|       sig { params(name: String, version: T.nilable(T.any(String, Integer))).returns(String) }
 | |
|       def shared_library(name, version = nil)
 | |
|         suffix = if version == "*" || (name == "*" && version.blank?)
 | |
|           "{,.*}"
 | |
|         elsif version.present?
 | |
|           ".#{version}"
 | |
|         end
 | |
|         "#{name}.so#{suffix}"
 | |
|       end
 | |
| 
 | |
|       sig { returns(String) }
 | |
|       def loader_path
 | |
|         "$ORIGIN"
 | |
|       end
 | |
| 
 | |
|       sig { params(targets: T.nilable(T.any(Pathname, String))).void }
 | |
|       def deuniversalize_machos(*targets); end
 | |
| 
 | |
|       sig { params(spec: SoftwareSpec).void }
 | |
|       def add_global_deps_to_spec(spec)
 | |
|         return unless ::DevelopmentTools.needs_build_formulae?
 | |
| 
 | |
|         @global_deps ||= T.let(nil, T.nilable(T::Array[Dependency]))
 | |
|         @global_deps ||= begin
 | |
|           dependency_collector = spec.dependency_collector
 | |
|           related_formula_names = Set.new([
 | |
|             name,
 | |
|             *aliases,
 | |
|             *versioned_formulae_names,
 | |
|           ])
 | |
|           [
 | |
|             dependency_collector.gcc_dep_if_needed(related_formula_names),
 | |
|             dependency_collector.glibc_dep_if_needed(related_formula_names),
 | |
|           ].compact.freeze
 | |
|         end
 | |
|         @global_deps.each { |dep| spec.dependency_collector.add(dep) }
 | |
|       end
 | |
| 
 | |
|       sig { returns(T::Boolean) }
 | |
|       def valid_platform?
 | |
|         requirements.none?(MacOSRequirement)
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 | |
| 
 | |
| Formula.prepend(OS::Linux::Formula)
 | 
