Lines Matching full:task
4 # Core code for function execution and task handling in the
62 """Base class for task events"""
76 self._message = "recipe %s: task %s: %s" % (d.getVar("PF"), t, self.getDisplayName())
81 def setTask(self, task): argument
82 self._task = task
87 task = property(getTask, setTask, None, "task property") variable in TaskBase
90 """Task execution started"""
96 """Task execution completed"""
99 """Task execution failed"""
101 def __init__(self, task, fn, logfile, metadata, errprinted = False): argument
103 super(TaskFailed, self).__init__(task, fn, logfile, metadata)
106 """Task execution failed (silently)"""
113 def __init__(self, task, fn, metadata): argument
114 super(TaskInvalid, self).__init__(task, fn, None, metadata)
115 self._message = "No such task '%s'" % task
119 Task made some progress that could be reported to the user, usually in
122 to - it's fired within the task context itself, so we don't have any of
124 The event PID can be used to determine which task it came from.
226 # task set, such as buildhistory
227 task = d.getVar('BB_RUNTASK') or func
228 if task == func:
229 taskfunc = task
231 taskfunc = "%s.%s" % (task, func)
234 runfn = runfmt.format(taskfunc=taskfunc, task=task, func=func, pid=os.getpid())
242 if task == func:
243 runlink = os.path.join(tempdir, 'run.{0}'.format(task))
265 bb.warn("Task %s changed cwd to %s" % (func, curcwd))
401 …bb.warn('%s: unknown custom progress handler in task progress varflag value "%s", ignoring' % (fun…
403 bb.warn('%s: invalid task progress varflag value "%s", ignoring' % (func, progress))
536 … # Skip the very last frame since it's just the call to the shell task in the body of the script
569 def _task_data(fn, task, d): argument
572 localdata.setVar('OVERRIDES', 'task-%s:%s' %
573 (task[3:].replace('_', '-'), d.getVar('OVERRIDES', False)))
578 def _exec_task(fn, task, d, quieterr): argument
579 """Execute a BB 'task'
581 Execution of a task involves a bit more setup than executing a function,
584 if not d.getVarFlag(task, 'task', False):
585 event.fire(TaskInvalid(task, fn, d), d)
586 logger.error("No such task: %s" % task)
589 logger.debug("Executing task %s", task)
591 localdata = _task_data(fn, task, d)
614 logfmt = localdata.getVar('BB_LOGFMT') or 'log.{task}.{pid}'
615 logbase = logfmt.format(task=task, pid=os.getpid())
621 logorderfile.write('{0} ({1}): {2}\n'.format(task, os.getpid(), logbase))
627 loglink = os.path.join(tempdir, 'log.{0}'.format(task))
637 prefuncs = localdata.getVarFlag(task, 'prefuncs', expand=True)
638 postfuncs = localdata.getVarFlag(task, 'postfuncs', expand=True)
672 # Always enable full debug output into task logfiles
680 localdata.setVar('BB_RUNTASK', task)
683 flags = localdata.getVarFlags(task)
687 event.fire(TaskStarted(task, fn, logfn, flags, localdata), localdata)
691 exec_func(task, localdata)
725 event.fire(TaskFailedSilent(task, fn, logfn, localdata), localdata)
734 event.fire(TaskFailed(task, fn, logfn, localdata, errprinted), localdata)
737 event.fire(TaskSucceeded(task, fn, logfn, localdata), localdata)
739 …if not localdata.getVarFlag(task, 'nostamp', False) and not localdata.getVarFlag(task, 'selfstamp'…
740 make_stamp(task, localdata)
744 def exec_task(fn, task, d, profile = False): argument
747 if d.getVarFlag(task, "quieterrors", False) is not None:
751 profname = "profile-%s.log" % (d.getVar("PN") + "-" + task)
757 ret = profile.Profile.runcall(prof, _exec_task, fn, task, d, quieterr)
763 return _exec_task(fn, task, d, quieterr)
768 logger.error("Build of %s failed" % (task))
770 failedevent = TaskFailed(task, None, d, True)
781 When called in task context, d will be a data store, file_name will not be set
817 When called in task context, d will be a data store, file_name will not be set
838 def clean_stamp(task, d, file_name = None): argument
839 cleanmask = stamp_cleanmask_internal(task, d, file_name)
851 def make_stamp(task, d, file_name = None): argument
853 Creates/updates a stamp for a given task
856 clean_stamp(task, d, file_name)
858 stamp = stamp_internal(task, d, file_name)
865 # If we're in task context, write out a signature file for each task
867 if not task.endswith("_setscene") and task != "do_setscene" and not file_name:
868 stampbase = stamp_internal(task, d, None, True)
870 bb.parse.siggen.dump_sigtask(file_name, task, stampbase, True)
872 def find_stale_stamps(task, d, file_name=None): argument
873 current = stamp_internal(task, d, file_name)
874 current2 = stamp_internal(task + "_setscene", d, file_name)
875 cleanmask = stamp_cleanmask_internal(task, d, file_name)
889 def del_stamp(task, d, file_name = None): argument
891 Removes a stamp for a given task
894 stamp = stamp_internal(task, d, file_name)
897 def write_taint(task, d, file_name = None): argument
899 Creates a "taint" file which will force the specified task and its
906 taintfn = d.stamp[file_name] + '.' + task + '.taint'
908 taintfn = d.getVar('STAMP') + '.' + task + '.taint'
917 Return the stamp for a given task
931 for task in tasklist:
932 task = d.expand(task)
934 d.setVarFlag(task, 'task', 1)
936 if not task in task_deps['tasks']:
937 task_deps['tasks'].append(task)
939 flags = d.getVarFlags(task)
950 task_deps[name][task] = deptask
962 task_deps['parents'][task] = []
965 # Check and warn for "addtask task after foo" while foo does not exist
967 … # bb.warn('%s: dependent task %s for %s does not exist' % (d.getVar('PN'), dep, task))
969 task_deps['parents'][task].append(dep)
974 def addtask(task, before, after, d): argument
975 if task[:3] != "do_":
976 task = "do_" + task
978 d.setVarFlag(task, "task", 1)
980 if task not in bbtasks:
981 bbtasks.append(task)
984 existing = d.getVarFlag(task, "deps", False) or []
990 d.setVarFlag(task, "deps", existing)
995 if task not in existing:
996 d.setVarFlag(entry, "deps", [task] + existing)
998 def deltask(task, d): argument
999 if task[:3] != "do_":
1000 task = "do_" + task
1003 if task in bbtasks:
1004 bbtasks.remove(task)
1005 d.delVarFlag(task, 'task')
1008 d.delVarFlag(task, 'deps')
1011 if task in deps:
1012 deps.remove(task)
1015 def preceedtask(task, with_recrdeptasks, d): argument
1018 precondition by the task itself ("after") or which listed themselves
1021 that this may lead to the task itself being listed.
1027 if task not in tasks:
1030 preceed.update(d.getVarFlag(task, 'deps') or [])
1032 recrdeptask = d.getVarFlag(task, 'recrdeptask')
1040 where task_start is to start at and task_end is the task to end at
1044 tasks = list(filter(lambda k: d.getVarFlag(k, "task"), d.keys()))
1045 def follow_chain(task, endtask, chain=None): argument
1048 if task in chain:
1049 …bb.fatal("Circular task dependencies as %s depends on itself via the chain %s" % (task, " -> ".joi…
1050 chain.append(task)
1052 if othertask == task:
1054 if task == endtask:
1060 if task in deps: