All pastes #467308 Raw Edit

gjc

public text v1 · immutable
·published 2007-05-02 13:19 UTC
rendered paste body
	def apply_lib_vars(self):		debug('apply_lib_vars called', 'ccroot')		# 0. override if necessary		self.process_vnum()		# 1. the case of the libs defined in the project		names = self.uselib_local.split()		env=self.env		htbl = Params.g_build.m_depends_on		for name in names:			for obj in Object.g_allobjs:				if obj.name != name: continue				if not obj.m_posted: obj.post()				if obj.m_type == 'shlib':					env.append_value('LIB', obj.target)				elif obj.m_type == 'plugin':					if platform == 'darwin':						env.append_value('PLUGIN', obj.target)					else:						env.append_value('LIB', obj.target)				elif obj.m_type == 'staticlib':					env.append_value('STATICLIB', obj.target)				else:					error('unknown object type %s in apply_lib_vars' % obj.name)				# add the path too				tmp_path = obj.path.bldpath(self.env)				if not tmp_path in env['LIBPATH']: env.prepend_value('LIBPATH', tmp_path)				# set the dependency over the link task				self.m_linktask.m_run_after.append(obj.m_linktask)				#break				# make sure to rebuild our link task if obj.m_linktask is re-run				try:					lst = htbl[self.m_linktask.m_outputs[0]]					for a in obj.m_linktask:						if not a in lst:							lst.append(a)				except:					htbl[self.m_linktask.m_outputs[0]] = obj.m_linktask.m_outputs				# do not continue on all objects, we have found the interesting one				break		# 2. the case of the libs defined outside		libs = self.uselib.split()		for l in libs:			for v in self.p_flag_vars:				val=self.env[v+'_'+l]				if val: self.env.append_value(v, val)