| 
									
										
										
										
											2019-04-19 15:38:03 +09:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-09-14 07:54:14 -07:00
										 |  |  | class BuildEnvironment | 
					
						
							| 
									
										
										
										
											2012-12-23 19:43:10 -06:00
										 |  |  |   def initialize(*settings) | 
					
						
							| 
									
										
										
										
											2014-07-07 18:12:24 -05:00
										 |  |  |     @settings = Set.new(*settings) | 
					
						
							| 
									
										
										
										
											2012-09-14 07:54:14 -07:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-07 09:15:56 -05:00
										 |  |  |   def merge(*args) | 
					
						
							|  |  |  |     @settings.merge(*args) | 
					
						
							| 
									
										
										
										
											2014-07-07 20:03:15 -05:00
										 |  |  |     self | 
					
						
							| 
									
										
										
										
											2014-07-07 09:15:56 -05:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-23 19:43:10 -06:00
										 |  |  |   def <<(o) | 
					
						
							| 
									
										
										
										
											2014-07-07 17:34:30 -05:00
										 |  |  |     @settings << o | 
					
						
							| 
									
										
										
										
											2012-12-23 19:43:10 -06:00
										 |  |  |     self | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-09-14 07:54:14 -07:00
										 |  |  |   def std? | 
					
						
							|  |  |  |     @settings.include? :std | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def userpaths? | 
					
						
							|  |  |  |     @settings.include? :userpaths | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2013-01-19 20:45:57 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-09 23:00:51 +02:00
										 |  |  |   module DSL | 
					
						
							|  |  |  |     def env(*settings) | 
					
						
							|  |  |  |       @env ||= BuildEnvironment.new | 
					
						
							|  |  |  |       @env.merge(settings) | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2013-01-19 20:45:57 -06:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2012-09-14 07:54:14 -07:00
										 |  |  | end | 
					
						
							| 
									
										
										
										
											2015-11-13 16:43:43 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | module Homebrew | 
					
						
							| 
									
										
										
										
											2016-09-26 01:44:51 +02:00
										 |  |  |   module_function | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-13 16:43:43 +01:00
										 |  |  |   def build_env_keys(env) | 
					
						
							|  |  |  |     %w[
 | 
					
						
							|  |  |  |       CC CXX LD OBJC OBJCXX | 
					
						
							|  |  |  |       HOMEBREW_CC HOMEBREW_CXX | 
					
						
							|  |  |  |       CFLAGS CXXFLAGS CPPFLAGS LDFLAGS SDKROOT MAKEFLAGS | 
					
						
							|  |  |  |       CMAKE_PREFIX_PATH CMAKE_INCLUDE_PATH CMAKE_LIBRARY_PATH CMAKE_FRAMEWORK_PATH | 
					
						
							|  |  |  |       MACOSX_DEPLOYMENT_TARGET PKG_CONFIG_PATH PKG_CONFIG_LIBDIR | 
					
						
							|  |  |  |       HOMEBREW_DEBUG HOMEBREW_MAKE_JOBS HOMEBREW_VERBOSE | 
					
						
							|  |  |  |       HOMEBREW_SVN HOMEBREW_GIT | 
					
						
							| 
									
										
										
										
											2019-01-23 21:57:37 +00:00
										 |  |  |       HOMEBREW_SDKROOT | 
					
						
							| 
									
										
										
										
											2015-11-13 16:43:43 +01:00
										 |  |  |       MAKE GIT CPP | 
					
						
							| 
									
										
										
										
											2016-09-17 15:17:27 +01:00
										 |  |  |       ACLOCAL_PATH PATH CPATH | 
					
						
							| 
									
										
										
										
											2017-10-19 15:24:30 -05:00
										 |  |  |       LD_LIBRARY_PATH LD_RUN_PATH LD_PRELOAD LIBRARY_PATH | 
					
						
							| 
									
										
										
										
											2016-09-17 15:17:27 +01:00
										 |  |  |     ].select { |key| env.key?(key) } | 
					
						
							| 
									
										
										
										
											2015-11-13 16:43:43 +01:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def dump_build_env(env, f = $stdout) | 
					
						
							|  |  |  |     keys = build_env_keys(env) | 
					
						
							|  |  |  |     keys -= %w[CC CXX OBJC OBJCXX] if env["CC"] == env["HOMEBREW_CC"] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     keys.each do |key| | 
					
						
							|  |  |  |       value = env[key] | 
					
						
							| 
									
										
										
										
											2019-05-01 09:03:39 +01:00
										 |  |  |       s = +"#{key}: #{value}" | 
					
						
							| 
									
										
										
										
											2015-11-13 16:43:43 +01:00
										 |  |  |       case key | 
					
						
							|  |  |  |       when "CC", "CXX", "LD" | 
					
						
							| 
									
										
										
										
											2019-05-01 09:03:39 +01:00
										 |  |  |         s << " => #{Pathname.new(value).realpath}" if File.symlink?(value) | 
					
						
							| 
									
										
										
										
											2015-11-13 16:43:43 +01:00
										 |  |  |       end | 
					
						
							| 
									
										
										
										
											2019-05-01 09:03:39 +01:00
										 |  |  |       s.freeze | 
					
						
							| 
									
										
										
										
											2015-11-13 16:43:43 +01:00
										 |  |  |       f.puts s | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |