Import('env', 'arch') templates = Glob('templates/*') sympy_helpers = "helpers/sympy_helpers.py" ekf_sym = "helpers/ekf_sym.py" to_build = { 'car': 'models/car_kf.py', 'live': 'models/live_kf.py', } if arch != "aarch64": to_build.update({ 'lane': '#xx/pipeline/lib/ekf/lane_kf.py', 'pos_computer_4': 'helpers/lst_sq_computer.py', 'pos_computer_5': 'helpers/lst_sq_computer.py', 'feature_handler_5': 'helpers/feature_handler.py', 'loc_4': 'models/loc_kf.py', 'gnss': 'models/gnss_kf.py', }) found = {} for target, command in to_build.items(): if File(command).exists(): found[target] = command for target, command in found.items(): target_files = File([f'generated/{target}.cpp', f'generated/{target}.h']) command_file = File(command) env.Command(target_files, [templates, command_file, sympy_helpers, ekf_sym], command_file.get_abspath()+" "+target ) env.SharedLibrary('generated/' + target, target_files[0])