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", ] orbit_filter = env.RednoseCompileFilter( target='orbit', filter_gen_script='models/orbit_kf.py', output_dir=rednose_gen_dir, extra_gen_artifacts=['orbit_state_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, ) # iqlocd build iqlocd_sources = ["atlas_loc_core.cc", "models/orbit_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) iqlocd = lenv.Program("iqlocd", iqlocd_sources, LIBS=["orbit", "ekf_sym"] + loc_libs + transformations) lenv.Depends(iqlocd, rednose) lenv.Depends(iqlocd, orbit_filter)