You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					32 lines
				
				1.1 KiB
			
		
		
			
		
	
	
					32 lines
				
				1.1 KiB
			| 
											1 year ago
										 | Import('env', 'envCython', 'arch', 'common', 'messaging')
 | ||
|  | 
 | ||
|  | import shutil
 | ||
|  | 
 | ||
|  | cereal_dir = Dir('.')
 | ||
|  | gen_dir = Dir('gen')
 | ||
|  | other_dir = Dir('#msgq/messaging')
 | ||
|  | 
 | ||
|  | # Build cereal
 | ||
|  | schema_files = ['log.capnp', 'car.capnp', 'legacy.capnp', 'custom.capnp']
 | ||
|  | env.Command(["gen/c/include/c++.capnp.h"], [], "mkdir -p " + gen_dir.path + "/c/include && touch $TARGETS")
 | ||
|  | 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/")
 | ||
|  | 
 | ||
|  | # TODO: remove non shared cereal and messaging
 | ||
|  | cereal_objects = env.SharedObject([f'gen/cpp/{s}.c++' for s in schema_files])
 | ||
|  | 
 | ||
|  | cereal = env.Library('cereal', cereal_objects)
 | ||
|  | env.SharedLibrary('cereal_shared', cereal_objects)
 | ||
|  | 
 | ||
|  | # Build messaging
 | ||
|  | 
 | ||
|  | services_h = env.Command(['services.h'], ['services.py'], 'python3 ' + cereal_dir.path + '/services.py > $TARGET')
 | ||
|  | env.Program('messaging/bridge', ['messaging/bridge.cc'], LIBS=[messaging, 'zmq', common])
 | ||
|  | 
 | ||
|  | 
 | ||
|  | socketmaster = env.SharedObject(['messaging/socketmaster.cc'])
 | ||
|  | socketmaster = env.Library('socketmaster', socketmaster)
 | ||
|  | 
 | ||
|  | Export('cereal', 'socketmaster')
 |