code: def FindSourceFiles(self, node='.'):
          
          node = self.arg2nodes(node, self.fs.Entry)[0]
  
          sources = []
          def build_source(ss):
              for s in ss:
                  if isinstance(s, SCons.Node.FS.Dir):
                      build_source(s.all_children())
                  elif s.has_builder():
                      build_source(s.sources)
                  elif isinstance(s.disambiguate(), SCons.Node.FS.File):
                      sources.append(s)
          build_source(node.all_children())
  
          def final_source(node):
              while (node != node.srcnode()):
                node = node.srcnode()
              return node
          sources = list(map( final_source, sources ));
          # remove duplicates
          return list(set(sources))
docs: returns a list of all source files.