|
@@ -14,7 +14,7 @@ import re
|
|
|
class Dot(object):
|
|
|
def __init__(self):
|
|
|
parser = argparse.ArgumentParser(
|
|
|
- description="Analyse recipe-depends.dot generated by bitbake -g",
|
|
|
+ description="Analyse task-depends.dot generated by bitbake -g",
|
|
|
formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
|
parser.add_argument("dotfile",
|
|
|
help = "Specify the dotfile", nargs = 1, action='store', default='')
|
|
@@ -159,9 +159,14 @@ Reduce the .dot file packages only, no tasks:
|
|
|
|
|
|
reverse_deps = []
|
|
|
if self.args.why:
|
|
|
- for k, v in depends.items():
|
|
|
- if self.args.key in v and not k in reverse_deps:
|
|
|
- reverse_deps.append(k)
|
|
|
+ key_list = [self.args.key]
|
|
|
+ current_key = self.args.key
|
|
|
+ while (len(key_list) != 0):
|
|
|
+ current_key = key_list.pop()
|
|
|
+ for k, v in depends.items():
|
|
|
+ if current_key in v and not k in reverse_deps:
|
|
|
+ reverse_deps.append(k)
|
|
|
+ key_list.append(k)
|
|
|
print('Because: %s' % ' '.join(reverse_deps))
|
|
|
Dot.print_dep_chains(self.args.key, reverse_deps, depends)
|
|
|
|