parameters: (self, *k, **kw)
return_statement: return path.abspath(), libs
docstring: return the lib path and the required libs
  	according to the parameters
docstring_summary: return the lib path and the required libs
  	according to the parameters
docstring_tokens: return the lib path and the required libs according to the parameters
function: def boost_get_libs(self, *k, **kw):
  	'''
  	return the lib path and the required libs
  	according to the parameters
  	'''
  	path, files = self.__boost_get_libs_path(**kw)
  	t = []
  	if kw.get('mt', False):
  		t.append('mt')
  	if kw.get('abi', None):
  		t.append(kw['abi'])
  	tags = t and '(-%s)+' % '-'.join(t) or ''
  	toolset = self.boost_get_toolset(kw.get('toolset', ''))
  	toolset_pat = '(-%s[0-9]{0,3})+' % toolset
  	version = '(-%s)+' % self.env.BOOST_VERSION
  
  	def find_lib(re_lib, files):
  		for file in files:
  			if re_lib.search(file.name):
  				self.to_log('Found boost lib %s' % file)
  				return file
  		return None
  
  	def format_lib_name(name):
  		if name.startswith('lib') and self.env.CC_NAME != 'msvc':
  			name = name[3:]
  		return name[:name.rfind('.')]
  
  	libs = []
  	for lib in Utils.to_list(k and k[0] or kw.get('lib', None)):
  		py = (lib == 'python') and '(-py%s)+' % kw['python'] or ''
  		# Trying libraries, from most strict match to least one
  		for pattern in ['boost_%s%s%s%s%s' % (lib, toolset_pat, tags, py, version),
  						'boost_%s%s%s%s' % (lib, tags, py, version),
  						'boost_%s%s%s' % (lib, tags, version),
  						# Give up trying to find the right version
  						'boost_%s%s%s%s' % (lib, toolset_pat, tags, py),
  						'boost_%s%s%s' % (lib, tags, py),
  						'boost_%s%s' % (lib, tags)]:
  			self.to_log('Trying pattern %s' % pattern)
  			file = find_lib(re.compile(pattern), files)
  			if file:
  				libs.append(format_lib_name(file.name))
  				break
  		else:
  			self.end_msg('lib %s not found in %s' % (lib, path.abspath()))
  			self.fatal('The configuration failed')
  
  	return path.abspath(), libs
function_tokens: def boost_get_libs ( self , * k , * * kw ) : path , files = self . __boost_get_libs_path ( * * kw ) t = [ ] if kw . get ( 'mt' , False ) : t . append ( 'mt' ) if kw . get ( 'abi' , None ) : t . append ( kw [ 'abi' ] ) tags = t and '(-%s)+' % '-' . join ( t ) or '' toolset = self . boost_get_toolset ( kw . get ( 'toolset' , '' ) ) toolset_pat = '(-%s[0-9]{0,3})+' % toolset version = '(-%s)+' % self . env . BOOST_VERSION def find_lib ( re_lib , files ) : for file in files : if re_lib . search ( file . name ) : self . to_log ( 'Found boost lib %s' % file ) return file return None def format_lib_name ( name ) : if name . startswith ( 'lib' ) and self . env . CC_NAME != 'msvc' : name = name [ 3 : ] return name [ : name . rfind ( '.' ) ] libs = [ ] for lib in Utils . to_list ( k and k [ 0 ] or kw . get ( 'lib' , None ) ) : py = ( lib == 'python' ) and '(-py%s)+' % kw [ 'python' ] or '' # Trying libraries, from most strict match to least one for pattern in [ 'boost_%s%s%s%s%s' % ( lib , toolset_pat , tags , py , version ) , 'boost_%s%s%s%s' % ( lib , tags , py , version ) , 'boost_%s%s%s' % ( lib , tags , version ) , # Give up trying to find the right version 'boost_%s%s%s%s' % ( lib , toolset_pat , tags , py ) , 'boost_%s%s%s' % ( lib , tags , py ) , 'boost_%s%s' % ( lib , tags ) ] : self . to_log ( 'Trying pattern %s' % pattern ) file = find_lib ( re . compile ( pattern ) , files ) if file : libs . append ( format_lib_name ( file . name ) ) break else : self . end_msg ( 'lib %s not found in %s' % ( lib , path . abspath ( ) ) ) self . fatal ( 'The configuration failed' ) return path . abspath ( ) , libs