|  |  |  | Import('env', 'common', 'msgq')
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | cereal_dir = Dir('.')
 | 
					
						
							|  |  |  | gen_dir = Dir('gen')
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Build cereal
 | 
					
						
							|  |  |  | schema_files = ['log.capnp', 'car.capnp', 'legacy.capnp', 'custom.capnp']
 | 
					
						
							|  |  |  | env.Command([f'gen/cpp/{s}.c++' for s in schema_files] + [f'gen/cpp/{s}.h' for s in schema_files],
 | 
					
						
							|  |  |  |             schema_files,
 | 
					
						
							|  |  |  |             f"capnpc --src-prefix={cereal_dir.path} $SOURCES -o c++:{gen_dir.path}/cpp/")
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | cereal = env.Library('cereal', [f'gen/cpp/{s}.c++' for s in schema_files])
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Build messaging
 | 
					
						
							|  |  |  | services_h = env.Command(['services.h'], ['services.py'], 'python3 ' + cereal_dir.path + '/services.py > $TARGET')
 | 
					
						
							|  |  |  | env.Program('messaging/bridge', ['messaging/bridge.cc', 'messaging/msgq_to_zmq.cc'], LIBS=[msgq, common, 'pthread'])
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | socketmaster = env.Library('socketmaster', ['messaging/socketmaster.cc'])
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Export('cereal', 'socketmaster')
 |