import  os 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								Import ( ' qt_env ' ,  ' arch ' ,  ' common ' ,  ' messaging ' ,  ' gpucommon ' ,  ' visionipc ' , 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								       ' cereal ' ,  ' transformations ' ) 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								base_libs  =  [ gpucommon ,  common ,  messaging ,  cereal ,  visionipc ,  transformations ,  ' zmq ' , 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								             ' capnp ' ,  ' kj ' ,  ' m ' ,  ' OpenCL ' ,  ' ssl ' ,  ' crypto ' ,  ' pthread ' ]  +  qt_env [ " LIBS " ] 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  arch  ==  ' aarch64 ' : 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  base_libs  + =  [ ' log ' ,  ' utils ' ,  ' gui ' ,  ' ui ' ,  ' CB ' ,  ' gsl ' ,  ' adreno_utils ' ,  ' cutils ' ,  ' uuid ' ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  arch  ==  " Darwin " : 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  del  base_libs [ base_libs . index ( ' OpenCL ' ) ] 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  qt_env [ ' FRAMEWORKS ' ]  + =  [ ' OpenCL ' ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								widgets_src  =  [ " qt/widgets/input.cc " ,  " qt/widgets/drive_stats.cc " , 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								               " qt/widgets/ssh_keys.cc " ,  " qt/widgets/toggle.cc " ,  " qt/widgets/controls.cc " , 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								               " qt/widgets/offroad_alerts.cc " ,  " qt/widgets/setup.cc " ,  " qt/widgets/keyboard.cc " , 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								               " qt/widgets/scrollview.cc " ,  " #phonelibs/qrcode/QrCode.cc " ,  " qt/api.cc " , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               " qt/request_repeater.cc " ] 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  arch  !=  ' aarch64 ' : 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  widgets_src  + =  [ " qt/offroad/networking.cc " ,  " qt/offroad/wifiManager.cc " ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								widgets  =  qt_env . Library ( " qt_widgets " ,  widgets_src ,  LIBS = base_libs ) 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								qt_libs  =  [ widgets ]  +  base_libs 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# spinner and text window 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								qt_env . Program ( " qt/text " ,  [ " qt/text.cc " ] ,  LIBS = qt_libs ) 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								qt_env . Program ( " qt/spinner " ,  [ " qt/spinner.cc " ] ,  LIBS = base_libs ) 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# build main UI 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								qt_src  =  [ " main.cc " ,  " ui.cc " ,  " paint.cc " ,  " qt/sidebar.cc " ,  " qt/onroad.cc " , 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								          " qt/window.cc " ,  " qt/home.cc " ,  " qt/offroad/settings.cc " , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          " qt/offroad/onboarding.cc " ,  " #phonelibs/nanovg/nanovg.c " ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								qt_env . Program ( " _ui " ,  qt_src ,  LIBS = qt_libs ) 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# setup, factory resetter, and installer 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  arch  !=  ' aarch64 '  and  " BUILD_SETUP "  in  os . environ : 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  qt_env . Program ( " qt/setup/reset " ,  [ " qt/setup/reset.cc " ] ,  LIBS = qt_libs ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  qt_env . Program ( " qt/setup/setup " ,  [ " qt/setup/setup.cc " ] ,  LIBS = qt_libs  +  [ ' curl ' ,  ' common ' ,  ' json11 ' ] ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  qt_env . Program ( " qt/setup/wifi " ,  [ " qt/setup/wifi.cc " ] ,  LIBS = qt_libs  +  [ ' common ' ,  ' json11 ' ] ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  installers  =  [ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ( " openpilot " ,  " master " ) , 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ( " openpilot_test " ,  " release3-staging " ) , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ( " openpilot_internal " ,  " master " ) , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ( " dashcam " ,  " dashcam3-staging " ) , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ( " dashcam_test " ,  " dashcam3-staging " ) , 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  for  name ,  branch  in  installers : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    d  =  { ' BRANCH ' :  f " ' \" { branch } \" ' " } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  " internal "  in  name : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      d [ ' INTERNAL ' ]  =  " 1 " 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      import  requests 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      r  =  requests . get ( " https://github.com/commaci2.keys " ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      r . raise_for_status ( ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      d [ ' SSH_KEYS ' ]  =  f ' \\ " { r . text . strip ( ) } \\ " ' 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								    obj  =  qt_env . Object ( f " qt/setup/installer_ { name } .o " ,  [ " qt/setup/installer.cc " ] ,  CPPDEFINES = d ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    qt_env . Program ( f " qt/setup/installer_ { name } " ,  obj ,  LIBS = qt_libs ,  CPPDEFINES = d ) 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# build headless replay 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  arch  ==  ' x86_64 '  and  os . path . exists ( Dir ( " #tools/ " ) . get_abspath ( ) ) : 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  qt_env [ ' CPPPATH ' ]  + =  [ " #tools/clib " ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  qt_env [ ' CXXFLAGS ' ]  + =  [ " -Wno-deprecated-declarations " ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  replay_lib_src  =  [ " replay/replay.cc " ,  " replay/unlogger.cc " , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    " replay/filereader.cc " ,  " #tools/clib/framereader.cc " ] 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  replay_lib  =  qt_env . Library ( " qt_replay " ,  replay_lib_src ,  LIBS = base_libs ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  replay_libs  =  [ replay_lib ,  ' avutil ' ,  ' avcodec ' ,  ' avformat ' ,  ' swscale ' ,  ' bz2 ' ]  +  qt_libs 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  qt_env . Program ( " replay/replay " ,  [ " replay/main.cc " ] ,  LIBS = replay_libs )