Import("env") from pathlib import Path generator = File("generator/generator.py") source_files = [ File(str(f)) for f in Path("generator").rglob("*") if f.is_file() and f.suffix in {".py", ".dbc"} ] output_files = [ f.name.replace(".dbc", "_generated.dbc") for f in Path("generator").rglob("*.dbc") if not f.name.startswith("_") ] # include DBCs generated by python scripts output_files += [ f.name.replace(".py", "_generated.dbc") for f in Path("generator").rglob("*.py") if not f.name.startswith(("_", "test_")) and f.name != "generator.py" ] generated = env.Command( target=list(set(output_files)), source=[generator] + source_files, action="python3 ${SOURCES[0]}", )