Import ( ' env ' , ' arch ' , ' cereal ' , ' messaging ' , ' common ' , ' gpucommon ' , ' visionipc ' , ' USE_WEBCAM ' , ' QCOM_REPLAY ' )
libs = [ ' m ' , ' pthread ' , common , ' jpeg ' , ' OpenCL ' , cereal , messaging , ' zmq ' , ' capnp ' , ' kj ' , visionipc , gpucommon ]
if arch == " aarch64 " :
libs + = [ ' gsl ' , ' CB ' , ' adreno_utils ' , ' EGL ' , ' GLESv3 ' , ' cutils ' , ' ui ' ]
if QCOM_REPLAY :
cameras = [ ' cameras/camera_frame_stream.cc ' ]
else :
cameras = [ ' cameras/camera_qcom.cc ' ]
elif arch == " larch64 " :
libs + = [ ' atomic ' ]
cameras = [ ' cameras/camera_qcom2.cc ' ]
# no screen
# env = env.Clone()
# env.Append(CXXFLAGS = '-DNOSCREEN')
# env.Append(CFLAGS = '-DNOSCREEN')
else :
if USE_WEBCAM :
libs + = [ ' opencv_core ' , ' opencv_highgui ' , ' opencv_imgproc ' , ' opencv_videoio ' ]
cameras = [ ' cameras/camera_webcam.cc ' ]
env = env . Clone ( )
env . Append ( CXXFLAGS = ' -DWEBCAM ' )
env . Append ( CFLAGS = ' -DWEBCAM ' )
env . Append ( CPPPATH = ' /usr/local/include/opencv4 ' )
else :
cameras = [ ' cameras/camera_frame_stream.cc ' ]
if arch == " Darwin " :
del libs [ libs . index ( ' OpenCL ' ) ]
del libs [ libs . index ( gpucommon ) ] [ gpucommon . index ( ' GL ' ) ]
env = env . Clone ( )
env [ ' FRAMEWORKS ' ] = [ ' OpenCL ' , ' OpenGL ' ]
env . SharedLibrary ( ' snapshot/visionipc ' ,
[ " #selfdrive/common/visionipc.c " , " #selfdrive/common/ipc.c " ] )
env . Program ( ' camerad ' , [
' main.cc ' ,
' cameras/camera_common.cc ' ,
' transforms/rgb_to_yuv.c ' ,
' imgproc/utils.cc ' ,
cameras ,
] , LIBS = libs )