bitbake: runqueue: add option to run all tasks in specific build target
For example: $ bitbake core-image-minimal --runall unpack ... NOTE: Tasks Summary: Attempted 326 tasks of which 88 didn't need to be rerun and all succeeded. $ bitbake core-image-minimal --runall patch NOTE: Tasks Summary: Attempted 453 tasks of which 332 didn't need to be rerun and all succeeded. This can replace fetchall as well: $ bitbake core-image-minimal --runall fetch NOTE: Tasks Summary: Attempted 135 tasks of which 119 didn't need to be rerun and all succeeded. (Bitbake rev: 7c0fa6ba66cdb956b37d94055307cde857633df9) Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
3e5f3cfe81
commit
404f2aef94
|
@ -148,6 +148,7 @@ class CookerConfiguration(object):
|
||||||
self.writeeventlog = False
|
self.writeeventlog = False
|
||||||
self.server_only = False
|
self.server_only = False
|
||||||
self.limited_deps = False
|
self.limited_deps = False
|
||||||
|
self.runall = None
|
||||||
|
|
||||||
self.env = {}
|
self.env = {}
|
||||||
|
|
||||||
|
|
|
@ -287,6 +287,9 @@ class BitBakeConfigParameters(cookerdata.ConfigParameters):
|
||||||
help="Writes the event log of the build to a bitbake event json file. "
|
help="Writes the event log of the build to a bitbake event json file. "
|
||||||
"Use '' (empty string) to assign the name automatically.")
|
"Use '' (empty string) to assign the name automatically.")
|
||||||
|
|
||||||
|
parser.add_option("", "--runall", action="store", dest="runall",
|
||||||
|
help="Run the specified task for all build targets and their dependencies.")
|
||||||
|
|
||||||
options, targets = parser.parse_args(argv)
|
options, targets = parser.parse_args(argv)
|
||||||
|
|
||||||
if options.quiet and options.verbose:
|
if options.quiet and options.verbose:
|
||||||
|
|
|
@ -803,6 +803,23 @@ class RunQueueData:
|
||||||
|
|
||||||
self.init_progress_reporter.next_stage()
|
self.init_progress_reporter.next_stage()
|
||||||
|
|
||||||
|
if self.cooker.configuration.runall is not None:
|
||||||
|
runall = "do_%s" % self.cooker.configuration.runall
|
||||||
|
runall_tids = { k: v for k, v in self.runtaskentries.items() if taskname_from_tid(k) == runall }
|
||||||
|
|
||||||
|
# re-run the mark_active and then drop unused tasks from new list
|
||||||
|
runq_build = {}
|
||||||
|
for tid in list(runall_tids):
|
||||||
|
mark_active(tid,1)
|
||||||
|
|
||||||
|
for tid in list(self.runtaskentries.keys()):
|
||||||
|
if tid not in runq_build:
|
||||||
|
del self.runtaskentries[tid]
|
||||||
|
delcount += 1
|
||||||
|
|
||||||
|
if len(self.runtaskentries) == 0:
|
||||||
|
bb.msg.fatal("RunQueue", "No remaining tasks to run run for build target %s with runall %s" % (target, runall))
|
||||||
|
|
||||||
#
|
#
|
||||||
# Step D - Sanity checks and computation
|
# Step D - Sanity checks and computation
|
||||||
#
|
#
|
||||||
|
|
Loading…
Reference in New Issue