Advertisement
Guest User

Traverse SCons node graph

a guest
May 20th, 2015
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.65 KB | None | 0 0
  1. import SCons
  2.  
  3. def has_build_targets():
  4.     return len(SCons.Script.BUILD_TARGETS) > 0
  5.  
  6. def get_start_nodes():
  7.     if has_build_targets():
  8.         return SCons.Script.Alias(SCons.Script.BUILD_TARGETS)
  9.     return [SCons.Script.Dir('.')]
  10.  
  11. def walk(node):
  12.     print "walk", str(node)
  13.     children = node.children()
  14.     for child in children:
  15.         if child.has_builder():
  16.             environ = child.get_build_env()
  17.             bn = child.get_builder().get_name(environ)
  18.             print "discovered %s (%s)" % (str(child), bn)
  19.         walk(child)
  20.  
  21.  
  22. for node in get_start_nodes():
  23.     if str(node) in ['/']:
  24.         continue
  25.     walk(node)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement