projects.py: Add some comments to dependency ordering code

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2023-12-18 13:00:45 +00:00
commit a4c3ca6f2b

View file

@ -527,13 +527,15 @@ class Projects(object):
self.debug("--- adding dependency tree of module " + m) self.debug("--- adding dependency tree of module " + m)
add_dep_tree(m, prereq_types, dep_tree, all_deps) add_dep_tree(m, prereq_types, dep_tree, all_deps)
while len(all_deps): while len(all_deps):
# Find any leaf
for d in all_deps: for d in all_deps:
if not len(dep_tree[d]): if not len(dep_tree[d]): # Dependency d doesn't have dependencies itself
break break # found
else: else: # no Leaf found
print(all_deps) print(all_deps)
raise Exception("fatal: the dependencies between these modules are unresolvable") raise Exception("fatal: the dependencies between these modules are unresolvable")
order.append(d) order.append(d) # do it
# bookkeep it
all_deps.remove(d) all_deps.remove(d)
for k in dep_tree.keys(): for k in dep_tree.keys():
if d in dep_tree[k]: if d in dep_tree[k]: