MCPcopy Create free account
hub / github.com/emscripten-core/emscripten / dependency_order

Function dependency_order

tools/ports/__init__.py:485–506  ·  view source on GitHub ↗
(port_list)

Source from the content-addressed store, hash-verified

483
484
485def 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
509def resolve_dependencies(port_set, settings, cflags_only=False):

Callers 3

build_portFunction · 0.85
get_libsFunction · 0.85
add_cflagsFunction · 0.85

Calls 3

popMethod · 0.95
OrderedSetClass · 0.85
dfsFunction · 0.85

Tested by

no test coverage detected