Import ( ' env ' , ' arch ' , ' common ' , ' messaging ' , ' rednose ' , ' transformations ' )
loc_libs = [ messaging , common , ' pthread ' , ' dl ' ]
# build ekf models
rednose_gen_dir = ' models/generated '
rednose_gen_deps = [
" models/constants.py " ,
]
live_ekf = env . RednoseCompileFilter (
target = ' live ' ,
filter_gen_script = ' models/live_kf.py ' ,
output_dir = rednose_gen_dir ,
extra_gen_artifacts = [ ' live_kf_constants.h ' ] ,
gen_script_deps = rednose_gen_deps ,
)
car_ekf = env . RednoseCompileFilter (
target = ' car ' ,
filter_gen_script = ' models/car_kf.py ' ,
output_dir = rednose_gen_dir ,
extra_gen_artifacts = [ ] ,
gen_script_deps = rednose_gen_deps ,
)
# locationd build
locationd_sources = [ " locationd.cc " , " models/live_kf.cc " ]
lenv = env . Clone ( )
# ekf filter libraries need to be linked, even if no symbols are used
if arch != " Darwin " :
lenv [ " LINKFLAGS " ] + = [ " -Wl,--no-as-needed " ]
lenv [ " LIBPATH " ] . append ( Dir ( rednose_gen_dir ) . abspath )
lenv [ " RPATH " ] . append ( Dir ( rednose_gen_dir ) . abspath )
locationd = lenv . Program ( " locationd " , locationd_sources , LIBS = [ " live " , " ekf_sym " ] + loc_libs + transformations )
lenv . Depends ( locationd , rednose )
lenv . Depends ( locationd , live_ekf )