| 
									
										
										
										
											2024-08-12 10:30:59 +01:00
										 |  |  | # typed: true # rubocop:disable Sorbet/StrictSigil | 
					
						
							| 
									
										
										
										
											2020-04-07 21:23:12 +02:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-18 15:33:49 -07:00
										 |  |  | 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}" | 
					
						
							| 
									
										
										
										
											2024-09-13 12:22:52 -07:00
										 |  |  |         end | 
					
						
							| 
									
										
										
										
											2024-09-18 15:33:49 -07:00
										 |  |  |         "#{name}.so#{suffix}" | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2024-09-13 12:22:52 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-18 15:33:49 -07:00
										 |  |  |       sig { returns(String) } | 
					
						
							|  |  |  |       def loader_path | 
					
						
							|  |  |  |         "$ORIGIN" | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2024-09-13 12:22:52 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-18 15:33:49 -07:00
										 |  |  |       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) | 
					
						
							| 
									
										
										
										
											2024-09-21 12:24:21 -07:00
										 |  |  |         return unless ::DevelopmentTools.needs_build_formulae? | 
					
						
							| 
									
										
										
										
											2024-09-18 15:33:49 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |         @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 | 
					
						
							| 
									
										
										
										
											2024-09-13 12:22:52 -07:00
										 |  |  |         end | 
					
						
							| 
									
										
										
										
											2024-09-18 15:33:49 -07:00
										 |  |  |         @global_deps.each { |dep| spec.dependency_collector.add(dep) } | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2024-09-13 12:22:52 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-18 15:33:49 -07:00
										 |  |  |       sig { returns(T::Boolean) } | 
					
						
							|  |  |  |       def valid_platform? | 
					
						
							|  |  |  |         requirements.none?(MacOSRequirement) | 
					
						
							| 
									
										
										
										
											2024-09-13 12:22:52 -07:00
										 |  |  |       end | 
					
						
							| 
									
										
										
										
											2020-12-23 15:43:07 -08:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2023-03-27 19:35:28 -07:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2020-04-07 21:23:12 +02:00
										 |  |  | end | 
					
						
							| 
									
										
										
										
											2024-09-05 19:56:32 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-18 15:33:49 -07:00
										 |  |  | Formula.prepend(OS::Linux::Formula) |