import os import json Import('env', 'arch', 'common', 'messaging', 'visionipc', 'transformations') raylib_env = env.Clone() # compile gettext .po -> .mo translations with open(File("translations/languages.json").abspath) as f: languages = json.loads(f.read()) po_sources = [f"#selfdrive/ui/translations/app_{l}.po" for l in languages.values()] po_sources = [src for src in po_sources if os.path.exists(File(src).abspath)] mo_targets = [src.replace(".po", ".mo") for src in po_sources] mo_build = [] for src, tgt in zip(po_sources, mo_targets): mo_build.append(raylib_env.Command(tgt, src, "msgfmt -o $TARGET $SOURCE")) mo_alias = raylib_env.Alias('mo', mo_build) raylib_env.AlwaysBuild(mo_alias) if GetOption('extras'): # build installers if arch != "Darwin": raylib_env['LIBPATH'] += [f'#third_party/raylib/{arch}/'] raylib_env['LINKFLAGS'].append('-Wl,-strip-debug') raylib_libs = common + ["raylib"] if arch == "larch64": raylib_libs += ["GLESv2", "EGL", "gbm", "drm"] else: raylib_libs += ["GL"] release = "release3" installers = [ ("openpilot", release), ("openpilot_test", f"{release}-staging"), ("openpilot_nightly", "nightly"), ("openpilot_internal", "nightly-dev"), ] cont = raylib_env.Command("installer/continue_openpilot.o", "installer/continue_openpilot.sh", "ld -r -b binary -o $TARGET $SOURCE") inter = raylib_env.Command("installer/inter_ttf.o", "installer/inter-ascii.ttf", "ld -r -b binary -o $TARGET $SOURCE") for name, branch in installers: d = {'BRANCH': f"'\"{branch}\"'"} if "internal" in name: d['INTERNAL'] = "1" obj = raylib_env.Object(f"installer/installers/installer_{name}.o", ["installer/installer.cc"], CPPDEFINES=d) f = raylib_env.Program(f"installer/installers/installer_{name}", [obj, cont, inter], LIBS=raylib_libs) # keep installers small assert f[0].get_size() < 1900*1e3, f[0].get_size()