(port_list)
| 483 | |
| 484 | |
| 485 | def dependency_order(port_list): |
| 486 | # Perform topological sort of ports according to the dependency DAG |
| 487 | port_map = {p.name: p for p in port_list} |
| 488 | |
| 489 | # Perform depth first search of dependency graph adding nodes to |
| 490 | # the stack only after all children have been explored. |
| 491 | stack = [] |
| 492 | unsorted = OrderedSet(port_list) |
| 493 | |
| 494 | def dfs(node): |
| 495 | for dep in node.deps: |
| 496 | dep, _ = split_port_options(dep) |
| 497 | child = port_map[dep] |
| 498 | if child in unsorted: |
| 499 | unsorted.remove(child) |
| 500 | dfs(child) |
| 501 | stack.append(node) |
| 502 | |
| 503 | while unsorted: |
| 504 | dfs(unsorted.pop()) |
| 505 | |
| 506 | return stack |
| 507 | |
| 508 | |
| 509 | def resolve_dependencies(port_set, settings, cflags_only=False): |
no test coverage detected