mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-02-19 01:53:57 +08:00
* split out dbc file logic into separate file * emit dbc file changed * change to list of dbc files * handle missing DBC file * dbcmanager emits signal * close existing files before loading new one * add placeholder open for bus menu * implement open dbc for bus * emit signals relevant for current dbc * move logic into findDBC * fix use after free * show currently loaded names in load dialog * enable/disable load save menus * handle saving * add save as to recents * handle file already open * do not assert * fix return and throw on file open error * fix test maybe * remove todo * typo * fix new dbc * fix loading fingerprint on macos * handle replacing a currently open dbc * fix reference and handle exception * fix indendation
44 lines
2.2 KiB
Python
44 lines
2.2 KiB
Python
import os
|
|
Import('env', 'qt_env', 'arch', 'common', 'messaging', 'visionipc', 'replay_lib',
|
|
'cereal', 'transformations', 'widgets', 'opendbc')
|
|
|
|
base_frameworks = qt_env['FRAMEWORKS']
|
|
base_libs = [common, messaging, cereal, visionipc, transformations, 'zmq',
|
|
'capnp', 'kj', 'm', 'ssl', 'crypto', 'pthread'] + qt_env["LIBS"]
|
|
|
|
if arch == "Darwin":
|
|
base_frameworks.append('OpenCL')
|
|
base_frameworks.append('QtCharts')
|
|
else:
|
|
base_libs.append('OpenCL')
|
|
base_libs.append('Qt5Charts')
|
|
|
|
qt_libs = ['qt_util'] + base_libs
|
|
|
|
cabana_libs = [widgets, cereal, messaging, visionipc, replay_lib, opendbc,'avutil', 'avcodec', 'avformat', 'bz2', 'curl', 'yuv'] + qt_libs
|
|
cabana_env = qt_env.Clone()
|
|
opendbc_path = '-DOPENDBC_FILE_PATH=\'"%s"\'' % (cabana_env.Dir("../../opendbc").abspath)
|
|
cabana_env['CXXFLAGS'] += [opendbc_path]
|
|
|
|
# build assets
|
|
assets = "assets/assets.cc"
|
|
assets_src = "assets/assets.qrc"
|
|
cabana_env.Command(assets, assets_src, f"rcc $SOURCES -o $TARGET")
|
|
cabana_env.Depends(assets, Glob('/assets/*', exclude=[assets, assets_src, "assets/assets.o"]))
|
|
|
|
prev_moc_path = cabana_env['QT_MOCHPREFIX']
|
|
cabana_env['QT_MOCHPREFIX'] = os.path.dirname(prev_moc_path) + '/cabana/moc_'
|
|
cabana_lib = cabana_env.Library("cabana_lib", ['mainwin.cc', 'streams/livestream.cc', 'streams/abstractstream.cc', 'streams/replaystream.cc', 'binaryview.cc', 'chartswidget.cc', 'historylog.cc', 'videowidget.cc', 'signaledit.cc', 'dbc.cc', 'dbcfile.cc', 'dbcmanager.cc',
|
|
'commands.cc', 'messageswidget.cc', 'route.cc', 'settings.cc', 'util.cc', 'detailwidget.cc', 'tools/findsimilarbits.cc'], LIBS=cabana_libs, FRAMEWORKS=base_frameworks)
|
|
cabana_env.Program('_cabana', ['cabana.cc', cabana_lib, assets], LIBS=cabana_libs, FRAMEWORKS=base_frameworks)
|
|
|
|
if arch == "Darwin":
|
|
cabana_env.Execute('install_name_tool -change opendbc/can/libdbc.dylib @loader_path/../../opendbc/can/libdbc.dylib ./_cabana')
|
|
|
|
if GetOption('test'):
|
|
cabana_env.Program('tests/_test_cabana', ['tests/test_runner.cc', 'tests/test_cabana.cc', cabana_lib], LIBS=[cabana_libs])
|
|
|
|
def generate_dbc_json(target, source, env):
|
|
env.Execute('tools/cabana/generate_dbc_json.py --out tools/cabana/car_fingerprint_to_dbc.json')
|
|
cabana_env.Command('generate_dbc_json', [], generate_dbc_json)
|