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)