Import('env', 'common', 'messaging') libs = ['usb-1.0', common, messaging, 'pthread'] panda = env.Library('panda', ['panda.cc', 'panda_comms.cc', 'spi.cc']) env.Program('pandad', ['main.cc', 'pandad.cc', 'panda_safety.cc'], LIBS=[panda] + libs) # pandad_api_impl is pure Python (selfdrive/pandad_tici/pandad_api_impl.py), # identical to the standard pandad/ impl — no Cython/C++ build needed. The CAN # capnp serialization is hardware-agnostic (shared cereal schema), so c3 and c3X # use the same code. This avoids the c3X link failure from the old Cython path. if GetOption('extras'): env.Program('tests/test_pandad_usbprotocol', ['tests/test_pandad_usbprotocol.cc'], LIBS=[panda] + libs)