cabana: generate dbc files during builds (#38974)

This commit is contained in:
Trey Moen
2026-09-19 16:54:47 -07:00
committed by GitHub
parent 95ed0213ec
commit 1b1b60ba93
+12 -1
View File
@@ -1,14 +1,23 @@
import os
from pathlib import Path
import bootstrap_icons
import imgui
import libusb
from openpilot.common.basedir import BASEDIR
from opendbc.dbc.generator.generator import generate_all
Import('env', 'arch', 'common', 'messaging', 'visionipc', 'cereal', 'replay_lib', 'ffmpeg_libs')
opendbc_path = '-DOPENDBC_FILE_PATH=\'"%s"\'' % (env.Dir("../../../opendbc_repo/opendbc/dbc").abspath)
dbc_dir = Path(env.Dir("#opendbc_repo/opendbc/dbc").abspath)
generated_dbcs = env.Command(
[str(dbc_dir / (name + '.dbc')) for name in sorted(generate_all())],
sorted(str(path) for path in (dbc_dir / 'generator').rglob('*') if path.suffix in ('.py', '.dbc')),
'python3 -m opendbc.dbc.generator.generator',
)
# embed the bootstrap icons SVG into the binary
def build_bootstrap_icons_src(target, source, env):
data = open(str(source[0]), 'rb').read()
@@ -52,6 +61,7 @@ if arch == "Darwin":
else:
ui_libs += ['GL', 'dl']
cabana_ui = ui_env.Program('cabana', ui_objs, LIBS=ui_libs)
ui_env.Requires(cabana_ui, generated_dbcs)
if GetOption('extras'):
cabana_core_test_env = env.Clone()
@@ -67,7 +77,8 @@ if GetOption('extras'):
cabana_core_test_env.Object('tests/cabana_core_routes', 'routes.cc'),
cabana_core_test_env.Object('tests/cabana_core_qtstate', 'ui/qtstate.cc'),
]
cabana_core_test_env.Program('tests/test_cabana', cabana_core_test_objects, LIBS=[replay_lib, common])
cabana_core_test = cabana_core_test_env.Program('tests/test_cabana', cabana_core_test_objects, LIBS=[replay_lib, common])
cabana_core_test_env.Requires(cabana_core_test, generated_dbcs)
output_json_file = 'openpilot/tools/cabana/dbc/car_fingerprint_to_dbc.json'
generate_dbc = ui_env.Command('#' + output_json_file,