Exemple #1
0
def _sort_targets(targets: "typing.List[str]",
                  add_dependencies=False,
                  add_toolchain=True,
                  skip_sdk=False,
                  build_morello_from_source=False) -> "typing.List[str]":
    target_manager.reset()
    # print(real_targets)
    real_targets = list(
        target_manager.get_target(
            t, None, global_config, caller="_sort_targets") for t in targets)
    global_config.include_dependencies = add_dependencies
    global_config.include_toolchain_dependencies = add_toolchain
    global_config.skip_sdk = skip_sdk
    global_config.build_morello_firmware_from_source = build_morello_from_source
    for t in real_targets:
        if t.project_class._xtarget is None:
            continue
    for t in target_manager.targets:
        assert t.project_class._cached_full_deps is None
        assert t.project_class._cached_filtered_deps is None
    result = list(
        t.name
        for t in target_manager.get_all_targets(real_targets, global_config))
    # print("result = ", result)
    return result
def _parse_arguments(
    args, *, config_file=Path("/this/does/not/exist")) -> DefaultCheriConfig:
    global _targets_registered
    # noinspection PyGlobalUndefined
    global _cheri_config
    if not _targets_registered:
        all_target_names = list(sorted(
            target_manager.target_names)) + ["__run_everything__"]
        ConfigLoaderBase._cheri_config = DefaultCheriConfig(
            _loader, all_target_names)
        SimpleProject._config_loader = _loader
        target_manager.register_command_line_options()
        _targets_registered = True
    target_manager.reset()
    ConfigLoaderBase._cheri_config.loader._config_path = config_file
    sys.argv = ["cheribuild.py"] + args
    ConfigLoaderBase._cheri_config.loader.reload()
    ConfigLoaderBase._cheri_config.load()
    # pprint.pprint(vars(ret))
    assert ConfigLoaderBase._cheri_config
    return ConfigLoaderBase._cheri_config
def _parse_arguments(args: typing.List[str], *, config_file=Path("/this/does/not/exist"),
                     allow_unknown_options=False) -> DefaultCheriConfig:
    assert isinstance(args, list)
    assert all(isinstance(arg, str) for arg in args), "Invalid argv " + str(args)
    global _targets_registered
    if not _targets_registered:
        all_target_names = list(sorted(target_manager.target_names)) + ["__run_everything__"]
        ConfigLoaderBase._cheri_config = DefaultCheriConfig(_loader, all_target_names)
        ConfigLoaderBase._cheri_config.TEST_MODE = True
        SimpleProject._config_loader = _loader
        target_manager.register_command_line_options()
        _targets_registered = True
    target_manager.reset()
    ConfigLoaderBase._cheri_config.loader._config_path = config_file
    sys.argv = ["cheribuild.py"] + args
    ConfigLoaderBase._cheri_config.loader.reset()
    ConfigLoaderBase._cheri_config.loader.unknown_config_option_is_error = not allow_unknown_options
    ConfigLoaderBase._cheri_config.load()
    # pprint.pprint(vars(ret))
    assert ConfigLoaderBase._cheri_config
    return ConfigLoaderBase._cheri_config
def _sort_targets(targets: "typing.List[str]",
                  add_dependencies=False,
                  add_toolchain=True,
                  skip_sdk=False) -> "typing.List[str]":
    target_manager.reset()
    # print(real_targets)
    real_targets = list(
        target_manager.get_target(
            t, None, global_config, caller="_sort_targets") for t in targets)
    global_config.include_dependencies = add_dependencies
    global_config.include_toolchain_dependencies = add_toolchain
    global_config.skip_sdk = skip_sdk
    for t in real_targets:
        # noinspection PyProtectedMember
        if t.project_class._xtarget is None:
            continue
        t.project_class._cached_deps = None
        t.get_dependencies(global_config)  # ensure they have been cached
    result = list(
        t.name
        for t in target_manager.get_all_targets(real_targets, global_config))
    # print("result = ", result)
    return result