def METHOD_NAME(self):
    sources = [self.startup_script]
    seen_filenames = set(self.excluded_sources)
    # print("Layers: ", self.layered_target_dirs)
    for target_dir in self.layered_target_dirs:
        accepted_sources = list(
            filter(
                lambda f: f.name not in seen_filenames,
                self.env.GlobRecursive("*.c", target_dir),
            )
        )
        seen_filenames.update(f.name for f in accepted_sources)
        sources.extend(accepted_sources)
    # print(f"Found {len(sources)} sources: {list(f.name for f in sources)}")
    return sources