summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/runqueue.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2015-12-15 16:42:18 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-12-18 12:18:19 +0000
commitb14ccb2367983b2263608b6d618647ecd22bf00d (patch)
tree4a6bf7fc7482d5a2292fb78da9d47be72b842f7c /bitbake/lib/bb/runqueue.py
parent5069ab60a7205becbbc88c1e07a9c1674e1b6669 (diff)
downloadpoky-b14ccb2367983b2263608b6d618647ecd22bf00d.tar.gz
bitbake: runqueue: Add support for <task>- syntax
It can be useful to run all tasks up to but not including a specific task. The main reason this was never added was the lack of a good syntax. This patch uses the syntax <taskname>- to denote this behaviour which is simple, not invasive and fits what we need from good syntax IMO, hence we can add this. (Bitbake rev: 99ccfd411ab3f7baa111f9f3d50fae68816a9a83) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/runqueue.py')
-rw-r--r--bitbake/lib/bb/runqueue.py26
1 files changed, 18 insertions, 8 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 878028aa97..ee06f0e71e 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -634,23 +634,33 @@ class RunQueueData:
634 634
635 fnid = taskData.build_targets[targetid][0] 635 fnid = taskData.build_targets[targetid][0]
636 fn = taskData.fn_index[fnid] 636 fn = taskData.fn_index[fnid]
637 self.target_pairs.append((fn, target[1])) 637 task = target[1]
638 parents = False
639 if task.endswith('-'):
640 parents = True
641 task = task[:-1]
642
643 self.target_pairs.append((fn, task))
638 644
639 if fnid in taskData.failed_fnids: 645 if fnid in taskData.failed_fnids:
640 continue 646 continue
641 647
642 if target[1] not in taskData.tasks_lookup[fnid]: 648 if task not in taskData.tasks_lookup[fnid]:
643 import difflib 649 import difflib
644 close_matches = difflib.get_close_matches(target[1], taskData.tasks_lookup[fnid], cutoff=0.7) 650 close_matches = difflib.get_close_matches(task, taskData.tasks_lookup[fnid], cutoff=0.7)
645 if close_matches: 651 if close_matches:
646 extra = ". Close matches:\n %s" % "\n ".join(close_matches) 652 extra = ". Close matches:\n %s" % "\n ".join(close_matches)
647 else: 653 else:
648 extra = "" 654 extra = ""
649 bb.msg.fatal("RunQueue", "Task %s does not exist for target %s%s" % (target[1], target[0], extra)) 655 bb.msg.fatal("RunQueue", "Task %s does not exist for target %s%s" % (task, target[0], extra))
650 656
651 listid = taskData.tasks_lookup[fnid][target[1]] 657 # For tasks called "XXXX-", ony run their dependencies
652 658 listid = taskData.tasks_lookup[fnid][task]
653 mark_active(listid, 1) 659 if parents:
660 for i in self.runq_depends[listid]:
661 mark_active(i, 1)
662 else:
663 mark_active(listid, 1)
654 664
655 # Step C - Prune all inactive tasks 665 # Step C - Prune all inactive tasks
656 # 666 #