| 
									
										
										
										
											2020-10-10 14:16:11 +02:00
										 |  |  | # typed: true | 
					
						
							| 
									
										
										
										
											2020-04-07 21:23:12 +02:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Formula | 
					
						
							| 
									
										
										
										
											2020-06-16 18:25:13 +02:00
										 |  |  |   undef shared_library | 
					
						
							| 
									
										
										
										
											2022-08-19 17:32:43 +08:00
										 |  |  |   undef loader_path | 
					
						
							| 
									
										
										
										
											2021-07-22 00:43:46 +08:00
										 |  |  |   undef deuniversalize_machos | 
					
						
							| 
									
										
										
										
											2022-08-25 11:04:37 +01:00
										 |  |  |   undef add_global_deps_to_spec | 
					
						
							| 
									
										
										
										
											2023-03-27 19:35:28 -07:00
										 |  |  |   undef valid_platform? | 
					
						
							| 
									
										
										
										
											2020-06-16 18:25:13 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-22 00:43:46 +08:00
										 |  |  |   sig { params(name: String, version: T.nilable(T.any(String, Integer))).returns(String) } | 
					
						
							| 
									
										
										
										
											2020-06-16 18:25:13 +02:00
										 |  |  |   def shared_library(name, version = nil) | 
					
						
							| 
									
										
										
										
											2020-12-23 15:43:07 -08:00
										 |  |  |     suffix = if version == "*" || (name == "*" && version.blank?) | 
					
						
							|  |  |  |       "{,.*}" | 
					
						
							|  |  |  |     elsif version.present? | 
					
						
							|  |  |  |       ".#{version}" | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |     "#{name}.so#{suffix}" | 
					
						
							| 
									
										
										
										
											2020-06-16 18:25:13 +02:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-22 00:43:46 +08:00
										 |  |  |   sig { returns(String) } | 
					
						
							| 
									
										
										
										
											2022-08-19 17:32:43 +08:00
										 |  |  |   def loader_path | 
					
						
							|  |  |  |     "$ORIGIN" | 
					
						
							| 
									
										
										
										
											2021-04-19 09:23:33 +01:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-22 00:43:46 +08:00
										 |  |  |   sig { params(targets: T.nilable(T.any(Pathname, String))).void } | 
					
						
							|  |  |  |   def deuniversalize_machos(*targets); end | 
					
						
							| 
									
										
										
										
											2022-08-25 11:04:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |   sig { params(spec: SoftwareSpec).void } | 
					
						
							|  |  |  |   def add_global_deps_to_spec(spec) | 
					
						
							| 
									
										
										
										
											2022-11-09 14:45:43 +00:00
										 |  |  |     return unless DevelopmentTools.needs_build_formulae? | 
					
						
							| 
									
										
										
										
											2022-08-30 12:54:34 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-25 11:04:37 +01:00
										 |  |  |     @global_deps ||= begin | 
					
						
							|  |  |  |       dependency_collector = spec.dependency_collector | 
					
						
							|  |  |  |       related_formula_names = Set.new([ | 
					
						
							|  |  |  |         name, | 
					
						
							| 
									
										
										
										
											2022-09-18 00:58:47 +01:00
										 |  |  |         *aliases, | 
					
						
							| 
									
										
										
										
											2022-08-25 11:04:37 +01:00
										 |  |  |         *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 | 
					
						
							| 
									
										
										
										
											2023-03-27 19:35:28 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |   sig { returns(T::Boolean) } | 
					
						
							|  |  |  |   def valid_platform? | 
					
						
							|  |  |  |     requirements.none?(MacOSRequirement) | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2020-04-07 21:23:12 +02:00
										 |  |  | end |