Files
IQ.Pilot/iqdbc_repo/iqdbc/dbc/SConscript
2026-08-22 23:42:42 -05:00

41 lines
1.1 KiB
Python

import os
from pathlib import Path
env = Environment(ENV=os.environ)
# short colored build output, if the top-level pretty tool is present (main-repo build)
_pretty = Dir('#tools/scons/site_tools').File('pretty.py')
if not _pretty.exists():
_pretty = Dir('#site_scons/site_tools').File('pretty.py')
if _pretty.exists():
env.Tool('pretty', toolpath=[_pretty.dir.abspath])
if not hasattr(env, 'PrettyAction'):
env.AddMethod(lambda e, cmd, label, **kw: Action(cmd), 'PrettyAction')
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=env.PrettyAction("python3 ${SOURCES[0]}", 'GEN'),
)