sconsrecursiveglob.py 575 B

12345678910111213141516171819202122232425
  1. import SCons
  2. def GlobRecursive(env, pattern, node=".", exclude=None):
  3. results = []
  4. if isinstance(node, str):
  5. node = env.Dir(node)
  6. for f in node.glob("*", source=True, exclude=exclude):
  7. if isinstance(f, SCons.Node.FS.Dir):
  8. results += env.GlobRecursive(pattern, f, exclude)
  9. results += node.glob(
  10. pattern,
  11. source=True,
  12. exclude=exclude,
  13. )
  14. # print(f"Glob for {pattern} from {node}: {results}")
  15. return results
  16. def generate(env):
  17. env.AddMethod(GlobRecursive)
  18. def exists(env):
  19. return True