diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-12-15 16:42:18 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-12-18 12:18:19 +0000 |
commit | b14ccb2367983b2263608b6d618647ecd22bf00d (patch) | |
tree | 4a6bf7fc7482d5a2292fb78da9d47be72b842f7c /bitbake/lib/bb/runqueue.py | |
parent | 5069ab60a7205becbbc88c1e07a9c1674e1b6669 (diff) | |
download | poky-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.py | 26 |
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 | # |