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 ' )
else :
base_libs . append ( ' OpenCL ' )
qt_libs = [ ' qt_util ' , ' Qt5Charts ' ] + base_libs
cabana_libs = [ widgets , cereal , messaging , visionipc , replay_lib , opendbc , ' avutil ' , ' avcodec ' , ' avformat ' , ' bz2 ' , ' curl ' , ' yuv ' ] + qt_libs
cabana_env = qt_env . Clone ( )
prev_moc_path = cabana_env [ ' QT_MOCHPREFIX ' ]
cabana_env [ ' QT_MOCHPREFIX ' ] = os . path . dirname ( prev_moc_path ) + ' /cabana/moc_ '
cabana_env . Execute ( ' ./generate_dbc_json.py --out car_fingerprint_to_dbc.json ' )
cabana_lib = cabana_env . Library ( " cabana_lib " , [ ' mainwin.cc ' , ' binaryview.cc ' , ' chartswidget.cc ' , ' historylog.cc ' , ' videowidget.cc ' , ' signaledit.cc ' , ' dbcmanager.cc ' ,
' canmessages.cc ' , ' commands.cc ' , ' messageswidget.cc ' , ' settings.cc ' , ' detailwidget.cc ' ] , LIBS = cabana_libs , FRAMEWORKS = base_frameworks )
cabana_env . Program ( ' _cabana ' , [ ' cabana.cc ' , cabana_lib ] , LIBS = cabana_libs , FRAMEWORKS = base_frameworks )
if GetOption ( ' test ' ) :
cabana_env . Program ( ' tests/_test_cabana ' , [ ' tests/test_runner.cc ' , ' tests/test_cabana.cc ' , cabana_lib ] , LIBS = [ cabana_libs ] )