import os
Import ( ' env ' , ' qt_env ' , ' arch ' , ' common ' , ' messaging ' , ' gpucommon ' , ' visionipc ' , ' cereal ' )
src = [ ' ui.cc ' , ' paint.cc ' , ' sidebar.cc ' , ' #phonelibs/nanovg/nanovg.c ' ]
libs = [ gpucommon , common , ' zmq ' , ' capnp ' , ' kj ' , ' m ' , ' OpenCL ' , cereal , messaging , visionipc ]
if qt_env is None :
libs + = [ ' EGL ' , ' GLESv3 ' , ' gnustl_shared ' , ' log ' , ' utils ' , ' gui ' , ' hardware ' ,
' ui ' , ' CB ' , ' gsl ' , ' adreno_utils ' , ' OpenSLES ' , ' cutils ' , ' uuid ' , ' OpenCL ' ]
linkflags = [ ' -Wl,-rpath=/system/lib64,-rpath=/system/comma/usr/lib ' ]
src + = [ " android/ui.cc " , " android/sl_sound.cc " ]
env . Program ( ' _ui ' , src ,
LINKFLAGS = linkflags ,
LIBS = libs )
else :
qt_libs = qt_env [ " LIBS " ] + libs + [ " pthread " , " ssl " , " crypto " ]
widgets = qt_env . Library ( " qt_widgets " ,
[ " qt/qt_sound.cc " , " qt/widgets/keyboard.cc " , " qt/widgets/input_field.cc " , " qt/widgets/drive_stats.cc " , " qt/widgets/ssh_keys.cc " ,
" qt/offroad/networking.cc " , " qt/offroad/wifiManager.cc " , " qt/widgets/toggle.cc " , " qt/widgets/offroad_alerts.cc " , " qt/widgets/setup.cc " ] ,
LIBS = qt_libs )
qt_libs . append ( widgets )
if arch == " Darwin " :
# fix OpenCL
del qt_libs [ qt_libs . index ( ' OpenCL ' ) ]
qt_env [ ' FRAMEWORKS ' ] + = [ ' OpenCL ' ]
qt_src = [ " qt/ui.cc " , " qt/window.cc " , " qt/home.cc " , " qt/api.cc " , " qt/offroad/settings.cc " , " qt/offroad/onboarding.cc " , " #phonelibs/qrcode/QrCode.cc " ] + src
qt_env . Program ( " _ui " , qt_src , LIBS = qt_libs )
# spinner and text window
qt_env . Program ( " qt/text " , [ " qt/text.cc " ] , LIBS = qt_libs )
qt_env . Program ( " qt/spinner " , [ " qt/spinner.cc " ] , LIBS = qt_libs )
# build setup, factory resetter, and installer
if " BUILD_SETUP " in os . environ :
qt_env . Program ( " qt/setup/reset " , [ " qt/setup/reset.cc " ] , LIBS = qt_libs )
qt_env . Program ( " qt/setup/setup " , [ " qt/setup/setup.cc " ] , LIBS = qt_libs + [ ' curl ' , ' common ' ] )
installers = [
( " openpilot " , " master " ) ,
#("openpilot_test", "release3-staging"),
#("openpilot_internal", "master"),
#("dashcam", "dashcam3-staging"),
#("dashcam_test", "dashcam3-staging"),
]
for name , branch in installers :
d = { ' BRANCH ' : f " ' \" { branch } \" ' " }
if " internal " in name :
import requests
r = requests . get ( " https://github.com/commaci2.keys " )
r . raise_for_status ( )
d [ ' SSH_KEYS ' ] = f ' \\ " { r . text . strip ( ) } \\ " '
qt_env . Program ( f " qt/setup/installer_ { name } " , [ " qt/setup/installer.cc " ] , LIBS = qt_libs , CPPDEFINES = d )