forked from IQ.Lvbs/IQ.Pilot
41 lines
1.1 KiB
Python
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'),
|
|
)
|