@ -37,11 +37,37 @@ widgets = qt_env.Library("qt_widgets", widgets_src, LIBS=base_libs)
Export ( ' widgets ' )
qt_libs = [ widgets , qt_util ] + base_libs
qt_src = [ " main.cc " , " qt/sidebar.cc " , " qt/onroad.cc " , " qt/body.cc " ,
" qt/window.cc " , " qt/home.cc " , " qt/offroad/settings.cc " ,
" qt/offroad/software_settings.cc " , " qt/offroad/onboarding.cc " ,
" qt/offroad/driverview.cc " , " qt/offroad/experimental_mode.cc " ]
# build translation files
with open ( File ( " translations/languages.json " ) . abspath ) as f :
languages = json . loads ( f . read ( ) )
translation_sources = [ f " #selfdrive/ui/translations/ { l } .ts " for l in languages . values ( ) ]
translation_targets = [ src . replace ( " .ts " , " .qm " ) for src in translation_sources ]
lrelease_bin = ' third_party/qt5/larch64/bin/lrelease ' if arch == ' larch64 ' else ' lrelease '
lupdate = qt_env . Command ( translation_sources , qt_src + widgets_src , " selfdrive/ui/update_translations.py " )
lrelease = qt_env . Command ( translation_targets , translation_sources , f " { lrelease_bin } $SOURCES " )
qt_env . Depends ( lrelease , lupdate )
qt_env . NoClean ( translation_sources )
qt_env . Precious ( translation_sources )
qt_env . NoCache ( lupdate )
# create qrc file for compiled translations to include with assets
translations_assets_src = " #selfdrive/assets/translations_assets.qrc "
with open ( File ( translations_assets_src ) . abspath , ' w ' ) as f :
f . write ( ' <!DOCTYPE RCC><RCC version= " 1.0 " > \n <qresource> \n ' )
f . write ( ' \n ' . join ( [ f ' <file alias= " { l } " >../ui/translations/ { l } .qm</file> ' for l in languages . values ( ) ] ) )
f . write ( ' \n </qresource> \n </RCC> ' )
# build assets
assets = " #selfdrive/assets/assets.cc "
assets_src = " #selfdrive/assets/assets.qrc "
qt_env . Command ( assets , assets_src , f " rcc $SOURCES -o $TARGET " )
qt_env . Depends ( assets , Glob ( ' #selfdrive/assets/* ' , exclude = [ assets , assets_src , " #selfdrive/assets/assets.o " ] ) )
qt_env . Command ( assets , [ assets_src , translations_assets_src ] , f " rcc $SOURCES -o $TARGET " )
qt_env . Depends ( assets , Glob ( ' #selfdrive/assets/* ' , exclude = [ assets , assets_src , translations_assets_src , " #selfdrive/assets/assets.o " ] ) + [ lrelease ] )
asset_obj = qt_env . Object ( " assets " , assets )
# build soundd
@ -57,10 +83,6 @@ qt_env.Program("qt/text", ["qt/text.cc"], LIBS=qt_libs)
qt_env . Program ( " qt/spinner " , [ " qt/spinner.cc " ] , LIBS = qt_libs )
# build main UI
qt_src = [ " main.cc " , " qt/sidebar.cc " , " qt/onroad.cc " , " qt/body.cc " ,
" qt/window.cc " , " qt/home.cc " , " qt/offroad/settings.cc " ,
" qt/offroad/software_settings.cc " , " qt/offroad/onboarding.cc " ,
" qt/offroad/driverview.cc " , " qt/offroad/experimental_mode.cc " ]
qt_env . Program ( " _ui " , qt_src + [ asset_obj ] , LIBS = qt_libs )
if GetOption ( ' extras ' ) :
qt_src . remove ( " main.cc " ) # replaced by test_runner
@ -68,21 +90,6 @@ if GetOption('extras'):
qt_env . Program ( ' tests/ui_snapshot ' , [ asset_obj , " tests/ui_snapshot.cc " ] + qt_src , LIBS = qt_libs )
# build translation files
with open ( File ( " translations/languages.json " ) . abspath ) as f :
languages = json . loads ( f . read ( ) )
translation_sources = [ f " #selfdrive/ui/translations/ { l } .ts " for l in languages . values ( ) ]
translation_targets = [ src . replace ( " .ts " , " .qm " ) for src in translation_sources ]
lrelease_bin = ' third_party/qt5/larch64/bin/lrelease ' if arch == ' larch64 ' else ' lrelease '
lupdate = qt_env . Command ( translation_sources , qt_src + widgets_src , " selfdrive/ui/update_translations.py " )
lrelease = qt_env . Command ( translation_targets , translation_sources , f " { lrelease_bin } $SOURCES " )
qt_env . Depends ( lrelease , lupdate )
qt_env . NoClean ( translation_sources )
qt_env . Precious ( translation_sources )
qt_env . NoCache ( lupdate )
if GetOption ( ' extras ' ) and arch != " Darwin " :
# setup and factory resetter
qt_env . Program ( " qt/setup/reset " , [ " qt/setup/reset.cc " ] , LIBS = qt_libs )