2024-06-06 14:31:56 -07:00
|
|
|
Import('qt_env', 'arch', 'common', 'messaging', 'visionipc', 'replay_lib', 'cereal', 'widgets', 'socketmaster')
|
2022-10-04 06:19:42 +08:00
|
|
|
|
|
|
|
|
base_frameworks = qt_env['FRAMEWORKS']
|
2024-06-06 14:31:56 -07:00
|
|
|
base_libs = [common, messaging, cereal, visionipc, socketmaster, 'qt_util', 'zmq', 'capnp', 'kj', 'm', 'ssl', 'crypto', 'pthread'] + qt_env["LIBS"]
|
2022-10-04 06:19:42 +08:00
|
|
|
|
|
|
|
|
if arch == "Darwin":
|
|
|
|
|
base_frameworks.append('OpenCL')
|
2023-01-16 07:13:16 +01:00
|
|
|
base_frameworks.append('QtCharts')
|
2023-08-23 19:50:11 +02:00
|
|
|
base_frameworks.append('QtSerialBus')
|
2022-10-04 06:19:42 +08:00
|
|
|
else:
|
|
|
|
|
base_libs.append('OpenCL')
|
2023-01-16 07:13:16 +01:00
|
|
|
base_libs.append('Qt5Charts')
|
2023-08-23 19:50:11 +02:00
|
|
|
base_libs.append('Qt5SerialBus')
|
2023-01-16 07:13:16 +01:00
|
|
|
|
|
|
|
|
qt_libs = ['qt_util'] + base_libs
|
2022-10-04 06:19:42 +08:00
|
|
|
|
2022-10-21 02:22:09 +08:00
|
|
|
cabana_env = qt_env.Clone()
|
2023-11-03 13:37:56 +08:00
|
|
|
cabana_libs = [widgets, cereal, messaging, visionipc, replay_lib, 'panda', 'avutil', 'avcodec', 'avformat', 'bz2', 'curl', 'yuv', 'usb-1.0'] + qt_libs
|
2023-02-18 11:31:54 +08:00
|
|
|
opendbc_path = '-DOPENDBC_FILE_PATH=\'"%s"\'' % (cabana_env.Dir("../../opendbc").abspath)
|
|
|
|
|
cabana_env['CXXFLAGS'] += [opendbc_path]
|
2022-10-21 02:22:09 +08:00
|
|
|
|
2023-02-20 07:14:13 +08:00
|
|
|
# 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"]))
|
|
|
|
|
|
2023-08-23 19:50:11 +02:00
|
|
|
cabana_lib = cabana_env.Library("cabana_lib", ['mainwin.cc', 'streams/socketcanstream.cc', 'streams/pandastream.cc', 'streams/devicestream.cc', 'streams/livestream.cc', 'streams/abstractstream.cc', 'streams/replaystream.cc', 'binaryview.cc', 'historylog.cc', 'videowidget.cc', 'signalview.cc',
|
2024-05-08 10:59:30 +08:00
|
|
|
'streams/routes.cc', 'dbc/dbc.cc', 'dbc/dbcfile.cc', 'dbc/dbcmanager.cc',
|
2023-12-20 03:50:16 +08:00
|
|
|
'utils/export.cc', 'utils/util.cc',
|
2023-04-17 01:59:24 +08:00
|
|
|
'chart/chartswidget.cc', 'chart/chart.cc', 'chart/signalselector.cc', 'chart/tiplabel.cc', 'chart/sparkline.cc',
|
2023-12-20 03:50:16 +08:00
|
|
|
'commands.cc', 'messageswidget.cc', 'streamselector.cc', 'settings.cc', 'detailwidget.cc', 'tools/findsimilarbits.cc', 'tools/findsignal.cc'], LIBS=cabana_libs, FRAMEWORKS=base_frameworks)
|
2023-04-02 07:29:06 +08:00
|
|
|
cabana_env.Program('cabana', ['cabana.cc', cabana_lib, assets], LIBS=cabana_libs, FRAMEWORKS=base_frameworks)
|
2023-01-29 23:55:17 +02:00
|
|
|
|
2023-08-24 14:58:30 -07:00
|
|
|
if GetOption('extras'):
|
2023-04-02 07:29:06 +08:00
|
|
|
cabana_env.Program('tests/test_cabana', ['tests/test_runner.cc', 'tests/test_cabana.cc', cabana_lib], LIBS=[cabana_libs])
|
2022-11-30 03:42:56 +08:00
|
|
|
|
2023-08-26 01:39:55 +08:00
|
|
|
output_json_file = 'tools/cabana/dbc/car_fingerprint_to_dbc.json'
|
|
|
|
|
generate_dbc = cabana_env.Command('#' + output_json_file,
|
|
|
|
|
['dbc/generate_dbc_json.py'],
|
|
|
|
|
"python3 tools/cabana/dbc/generate_dbc_json.py --out " + output_json_file)
|
2024-06-04 19:16:55 -07:00
|
|
|
cabana_env.Depends(generate_dbc, ["#common", "#selfdrive/pandad", '#opendbc', "#cereal", Glob("#opendbc/*.dbc")])
|