Import ( ' env ' ,  ' arch ' ,  ' cereal ' ,  ' messaging ' ,  ' common ' ,  ' gpucommon ' ,  ' visionipc ' ) 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								lenv  =  env . Clone ( ) 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								libs  =  [ cereal ,  messaging ,  common ,  ' OpenCL ' ,  ' SNPE ' ,  ' symphony-cpu ' ,  ' capnp ' ,  ' zmq ' ,  ' kj ' ,  ' yuv ' ,  gpucommon ,  visionipc ] 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								common_src  =  [ 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  " models/commonmodel.cc " , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  " runners/snpemodel.cc " , 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  " transforms/loadyuv.cc " , 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  " transforms/transform.cc " 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								] 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								thneed_src  =  [ 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  " thneed/thneed.cc " , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  " thneed/serialize.cc " , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  " runners/thneedmodel.cc " , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								] 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  arch  ==  " aarch64 "  or  arch  ==  " larch64 " : 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  libs  + =  [ ' gsl ' ,  ' CB ' ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  libs  + =  [ ' gnustl_shared ' ]  if  arch  ==  " aarch64 "  else  [ ' pthread ' ,  ' dl ' ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  common_src  + =  thneed_src 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  lenv [ ' CFLAGS ' ] . append ( " -DUSE_THNEED " ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  lenv [ ' CXXFLAGS ' ] . append ( " -DUSE_THNEED " ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								else : 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  libs  + =  [ ' pthread ' ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  # for onnx support 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  common_src  + =  [ ' runners/onnxmodel.cc ' ] 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  # tell runners to use onnx 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  lenv [ ' CFLAGS ' ] . append ( " -DUSE_ONNX_MODEL " ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  lenv [ ' CXXFLAGS ' ] . append ( " -DUSE_ONNX_MODEL " ) 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  arch  ==  " Darwin " : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    # fix OpenCL 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    del  libs [ libs . index ( ' OpenCL ' ) ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    lenv [ ' FRAMEWORKS ' ]  =  [ ' OpenCL ' ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    # no SNPE on Mac 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    del  libs [ libs . index ( ' SNPE ' ) ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    del  libs [ libs . index ( ' symphony-cpu ' ) ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    del  common_src [ common_src . index ( ' runners/snpemodel.cc ' ) ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								common_model  =  lenv . Object ( common_src ) 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# build thneed model 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  arch  ==  " aarch64 "  or  arch  ==  " larch64 " : 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  compiler  =  lenv . Program ( ' thneed/compile ' ,  [ " thneed/compile.cc "  ] + common_model ,  LIBS = libs ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  cmd  =  f " cd  { Dir ( ' . ' ) . get_abspath ( ) }  &&  { compiler [ 0 ] . get_abspath ( ) }  ../../models/supercombo.dlc ../../models/supercombo.thneed --binary " 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  snpe_path  =  " /data/pythonpath/phonelibs/snpe/ " + arch 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  cenv  =  Environment ( ENV  =  { ' LD_LIBRARY_PATH '  :  snpe_path + " : " + lenv [ " ENV " ] [ " LD_LIBRARY_PATH " ] } ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  cenv . Command ( " ../../models/supercombo.thneed " ,  [ " ../../models/supercombo.dlc " ,  compiler ] ,  cmd ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								lenv . Program ( ' _dmonitoringmodeld ' ,  [ 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    " dmonitoringmodeld.cc " , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    " models/dmonitoring.cc " , 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ] + common_model ,  LIBS = libs ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								lenv . Program ( ' _modeld ' ,  [ 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    " modeld.cc " , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    " models/driving.cc " , 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ] + common_model ,  LIBS = libs )