parameters: (self)
docstring: Overrides :py:meth:`waflib.Build.BuildContext.compile` to perform a partial build
  		on tasks matching the input/output pattern given (regular expression matching)::
  
  			$ waf step --files=foo.c,bar.c,in:truc.c,out:bar.o
  			$ waf step --files=in:foo.cpp.1.o # link task only
docstring_summary: Overrides :py:meth:`waflib.Build.BuildContext.compile` to perform a partial build
  		on tasks matching the input/output pattern given (regular expression matching)::
docstring_tokens: Overrides : py : meth : waflib . Build . BuildContext . compile to perform a partial build on tasks matching the input / output pattern given ( regular expression matching ) ::
function: def compile(self):
  		"""
  		Overrides :py:meth:`waflib.Build.BuildContext.compile` to perform a partial build
  		on tasks matching the input/output pattern given (regular expression matching)::
  
  			$ waf step --files=foo.c,bar.c,in:truc.c,out:bar.o
  			$ waf step --files=in:foo.cpp.1.o # link task only
  
  		"""
  		if not self.files:
  			Logs.warn('Add a pattern for the debug build, for example "waf step --files=main.c,app"')
  			BuildContext.compile(self)
  			return
  
  		targets = []
  		if self.targets and self.targets != '*':
  			targets = self.targets.split(',')
  
  		for g in self.groups:
  			for tg in g:
  				if targets and tg.name not in targets:
  					continue
  
  				try:
  					f = tg.post
  				except AttributeError:
  					pass
  				else:
  					f()
  
  			for pat in self.files.split(','):
  				matcher = self.get_matcher(pat)
  				for tg in g:
  					if isinstance(tg, Task.Task):
  						lst = [tg]
  					else:
  						lst = tg.tasks
  					for tsk in lst:
  						do_exec = False
  						for node in tsk.inputs:
  							if matcher(node, output=False):
  								do_exec = True
  								break
  						for node in tsk.outputs:
  							if matcher(node, output=True):
  								do_exec = True
  								break
  						if do_exec:
  							ret = tsk.run()
  							Logs.info('%s -> exit %r', tsk, ret)
function_tokens: def compile ( self ) : if not self . files : Logs . warn ( 'Add a pattern for the debug build, for example "waf step --files=main.c,app"' ) BuildContext . compile ( self ) return targets = [ ] if self . targets and self . targets != '*' : targets = self . targets . split ( ',' ) for g in self . groups : for tg in g : if targets and tg . name not in targets : continue try : f = tg . post except AttributeError : pass else : f ( ) for pat in self . files . split ( ',' ) : matcher = self . get_matcher ( pat ) for tg in g : if isinstance ( tg , Task . Task ) : lst = [ tg ] else : lst = tg . tasks for tsk in lst : do_exec = False for node in tsk . inputs : if matcher ( node , output = False ) : do_exec = True break for node in tsk . outputs : if matcher ( node , output = True ) : do_exec = True break if do_exec : ret = tsk . run ( ) Logs . info ( '%s -> exit %r' , tsk , ret )