133d722a9Sopenharmony_ci###############################################################################
233d722a9Sopenharmony_ci# @generated
333d722a9Sopenharmony_ci# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
433d722a9Sopenharmony_ci# regenerate this file, run the following:
533d722a9Sopenharmony_ci#
633d722a9Sopenharmony_ci#     bazel run @//third-party:vendor
733d722a9Sopenharmony_ci###############################################################################
833d722a9Sopenharmony_ci"""
933d722a9Sopenharmony_ci# `crates_repository` API
1033d722a9Sopenharmony_ci
1133d722a9Sopenharmony_ci- [aliases](#aliases)
1233d722a9Sopenharmony_ci- [crate_deps](#crate_deps)
1333d722a9Sopenharmony_ci- [all_crate_deps](#all_crate_deps)
1433d722a9Sopenharmony_ci- [crate_repositories](#crate_repositories)
1533d722a9Sopenharmony_ci
1633d722a9Sopenharmony_ci"""
1733d722a9Sopenharmony_ci
1833d722a9Sopenharmony_ciload("@bazel_skylib//lib:selects.bzl", "selects")
1933d722a9Sopenharmony_ciload("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
2033d722a9Sopenharmony_ciload("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
2133d722a9Sopenharmony_ci
2233d722a9Sopenharmony_ci###############################################################################
2333d722a9Sopenharmony_ci# MACROS API
2433d722a9Sopenharmony_ci###############################################################################
2533d722a9Sopenharmony_ci
2633d722a9Sopenharmony_ci# An identifier that represent common dependencies (unconditional).
2733d722a9Sopenharmony_ci_COMMON_CONDITION = ""
2833d722a9Sopenharmony_ci
2933d722a9Sopenharmony_cidef _flatten_dependency_maps(all_dependency_maps):
3033d722a9Sopenharmony_ci    """Flatten a list of dependency maps into one dictionary.
3133d722a9Sopenharmony_ci
3233d722a9Sopenharmony_ci    Dependency maps have the following structure:
3333d722a9Sopenharmony_ci
3433d722a9Sopenharmony_ci    ```python
3533d722a9Sopenharmony_ci    DEPENDENCIES_MAP = {
3633d722a9Sopenharmony_ci        # The first key in the map is a Bazel package
3733d722a9Sopenharmony_ci        # name of the workspace this file is defined in.
3833d722a9Sopenharmony_ci        "workspace_member_package": {
3933d722a9Sopenharmony_ci
4033d722a9Sopenharmony_ci            # Not all dependencies are supported for all platforms.
4133d722a9Sopenharmony_ci            # the condition key is the condition required to be true
4233d722a9Sopenharmony_ci            # on the host platform.
4333d722a9Sopenharmony_ci            "condition": {
4433d722a9Sopenharmony_ci
4533d722a9Sopenharmony_ci                # An alias to a crate target.     # The label of the crate target the
4633d722a9Sopenharmony_ci                # Aliases are only crate names.   # package name refers to.
4733d722a9Sopenharmony_ci                "package_name":                   "@full//:label",
4833d722a9Sopenharmony_ci            }
4933d722a9Sopenharmony_ci        }
5033d722a9Sopenharmony_ci    }
5133d722a9Sopenharmony_ci    ```
5233d722a9Sopenharmony_ci
5333d722a9Sopenharmony_ci    Args:
5433d722a9Sopenharmony_ci        all_dependency_maps (list): A list of dicts as described above
5533d722a9Sopenharmony_ci
5633d722a9Sopenharmony_ci    Returns:
5733d722a9Sopenharmony_ci        dict: A dictionary as described above
5833d722a9Sopenharmony_ci    """
5933d722a9Sopenharmony_ci    dependencies = {}
6033d722a9Sopenharmony_ci
6133d722a9Sopenharmony_ci    for workspace_deps_map in all_dependency_maps:
6233d722a9Sopenharmony_ci        for pkg_name, conditional_deps_map in workspace_deps_map.items():
6333d722a9Sopenharmony_ci            if pkg_name not in dependencies:
6433d722a9Sopenharmony_ci                non_frozen_map = dict()
6533d722a9Sopenharmony_ci                for key, values in conditional_deps_map.items():
6633d722a9Sopenharmony_ci                    non_frozen_map.update({key: dict(values.items())})
6733d722a9Sopenharmony_ci                dependencies.setdefault(pkg_name, non_frozen_map)
6833d722a9Sopenharmony_ci                continue
6933d722a9Sopenharmony_ci
7033d722a9Sopenharmony_ci            for condition, deps_map in conditional_deps_map.items():
7133d722a9Sopenharmony_ci                # If the condition has not been recorded, do so and continue
7233d722a9Sopenharmony_ci                if condition not in dependencies[pkg_name]:
7333d722a9Sopenharmony_ci                    dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))
7433d722a9Sopenharmony_ci                    continue
7533d722a9Sopenharmony_ci
7633d722a9Sopenharmony_ci                # Alert on any miss-matched dependencies
7733d722a9Sopenharmony_ci                inconsistent_entries = []
7833d722a9Sopenharmony_ci                for crate_name, crate_label in deps_map.items():
7933d722a9Sopenharmony_ci                    existing = dependencies[pkg_name][condition].get(crate_name)
8033d722a9Sopenharmony_ci                    if existing and existing != crate_label:
8133d722a9Sopenharmony_ci                        inconsistent_entries.append((crate_name, existing, crate_label))
8233d722a9Sopenharmony_ci                    dependencies[pkg_name][condition].update({crate_name: crate_label})
8333d722a9Sopenharmony_ci
8433d722a9Sopenharmony_ci    return dependencies
8533d722a9Sopenharmony_ci
8633d722a9Sopenharmony_cidef crate_deps(deps, package_name = None):
8733d722a9Sopenharmony_ci    """Finds the fully qualified label of the requested crates for the package where this macro is called.
8833d722a9Sopenharmony_ci
8933d722a9Sopenharmony_ci    Args:
9033d722a9Sopenharmony_ci        deps (list): The desired list of crate targets.
9133d722a9Sopenharmony_ci        package_name (str, optional): The package name of the set of dependencies to look up.
9233d722a9Sopenharmony_ci            Defaults to `native.package_name()`.
9333d722a9Sopenharmony_ci
9433d722a9Sopenharmony_ci    Returns:
9533d722a9Sopenharmony_ci        list: A list of labels to generated rust targets (str)
9633d722a9Sopenharmony_ci    """
9733d722a9Sopenharmony_ci
9833d722a9Sopenharmony_ci    if not deps:
9933d722a9Sopenharmony_ci        return []
10033d722a9Sopenharmony_ci
10133d722a9Sopenharmony_ci    if package_name == None:
10233d722a9Sopenharmony_ci        package_name = native.package_name()
10333d722a9Sopenharmony_ci
10433d722a9Sopenharmony_ci    # Join both sets of dependencies
10533d722a9Sopenharmony_ci    dependencies = _flatten_dependency_maps([
10633d722a9Sopenharmony_ci        _NORMAL_DEPENDENCIES,
10733d722a9Sopenharmony_ci        _NORMAL_DEV_DEPENDENCIES,
10833d722a9Sopenharmony_ci        _PROC_MACRO_DEPENDENCIES,
10933d722a9Sopenharmony_ci        _PROC_MACRO_DEV_DEPENDENCIES,
11033d722a9Sopenharmony_ci        _BUILD_DEPENDENCIES,
11133d722a9Sopenharmony_ci        _BUILD_PROC_MACRO_DEPENDENCIES,
11233d722a9Sopenharmony_ci    ]).pop(package_name, {})
11333d722a9Sopenharmony_ci
11433d722a9Sopenharmony_ci    # Combine all conditional packages so we can easily index over a flat list
11533d722a9Sopenharmony_ci    # TODO: Perhaps this should actually return select statements and maintain
11633d722a9Sopenharmony_ci    # the conditionals of the dependencies
11733d722a9Sopenharmony_ci    flat_deps = {}
11833d722a9Sopenharmony_ci    for deps_set in dependencies.values():
11933d722a9Sopenharmony_ci        for crate_name, crate_label in deps_set.items():
12033d722a9Sopenharmony_ci            flat_deps.update({crate_name: crate_label})
12133d722a9Sopenharmony_ci
12233d722a9Sopenharmony_ci    missing_crates = []
12333d722a9Sopenharmony_ci    crate_targets = []
12433d722a9Sopenharmony_ci    for crate_target in deps:
12533d722a9Sopenharmony_ci        if crate_target not in flat_deps:
12633d722a9Sopenharmony_ci            missing_crates.append(crate_target)
12733d722a9Sopenharmony_ci        else:
12833d722a9Sopenharmony_ci            crate_targets.append(flat_deps[crate_target])
12933d722a9Sopenharmony_ci
13033d722a9Sopenharmony_ci    if missing_crates:
13133d722a9Sopenharmony_ci        fail("Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`".format(
13233d722a9Sopenharmony_ci            missing_crates,
13333d722a9Sopenharmony_ci            package_name,
13433d722a9Sopenharmony_ci            dependencies,
13533d722a9Sopenharmony_ci        ))
13633d722a9Sopenharmony_ci
13733d722a9Sopenharmony_ci    return crate_targets
13833d722a9Sopenharmony_ci
13933d722a9Sopenharmony_cidef all_crate_deps(
14033d722a9Sopenharmony_ci        normal = False,
14133d722a9Sopenharmony_ci        normal_dev = False,
14233d722a9Sopenharmony_ci        proc_macro = False,
14333d722a9Sopenharmony_ci        proc_macro_dev = False,
14433d722a9Sopenharmony_ci        build = False,
14533d722a9Sopenharmony_ci        build_proc_macro = False,
14633d722a9Sopenharmony_ci        package_name = None):
14733d722a9Sopenharmony_ci    """Finds the fully qualified label of all requested direct crate dependencies \
14833d722a9Sopenharmony_ci    for the package where this macro is called.
14933d722a9Sopenharmony_ci
15033d722a9Sopenharmony_ci    If no parameters are set, all normal dependencies are returned. Setting any one flag will
15133d722a9Sopenharmony_ci    otherwise impact the contents of the returned list.
15233d722a9Sopenharmony_ci
15333d722a9Sopenharmony_ci    Args:
15433d722a9Sopenharmony_ci        normal (bool, optional): If True, normal dependencies are included in the
15533d722a9Sopenharmony_ci            output list.
15633d722a9Sopenharmony_ci        normal_dev (bool, optional): If True, normal dev dependencies will be
15733d722a9Sopenharmony_ci            included in the output list..
15833d722a9Sopenharmony_ci        proc_macro (bool, optional): If True, proc_macro dependencies are included
15933d722a9Sopenharmony_ci            in the output list.
16033d722a9Sopenharmony_ci        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
16133d722a9Sopenharmony_ci            included in the output list.
16233d722a9Sopenharmony_ci        build (bool, optional): If True, build dependencies are included
16333d722a9Sopenharmony_ci            in the output list.
16433d722a9Sopenharmony_ci        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
16533d722a9Sopenharmony_ci            included in the output list.
16633d722a9Sopenharmony_ci        package_name (str, optional): The package name of the set of dependencies to look up.
16733d722a9Sopenharmony_ci            Defaults to `native.package_name()` when unset.
16833d722a9Sopenharmony_ci
16933d722a9Sopenharmony_ci    Returns:
17033d722a9Sopenharmony_ci        list: A list of labels to generated rust targets (str)
17133d722a9Sopenharmony_ci    """
17233d722a9Sopenharmony_ci
17333d722a9Sopenharmony_ci    if package_name == None:
17433d722a9Sopenharmony_ci        package_name = native.package_name()
17533d722a9Sopenharmony_ci
17633d722a9Sopenharmony_ci    # Determine the relevant maps to use
17733d722a9Sopenharmony_ci    all_dependency_maps = []
17833d722a9Sopenharmony_ci    if normal:
17933d722a9Sopenharmony_ci        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
18033d722a9Sopenharmony_ci    if normal_dev:
18133d722a9Sopenharmony_ci        all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)
18233d722a9Sopenharmony_ci    if proc_macro:
18333d722a9Sopenharmony_ci        all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)
18433d722a9Sopenharmony_ci    if proc_macro_dev:
18533d722a9Sopenharmony_ci        all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)
18633d722a9Sopenharmony_ci    if build:
18733d722a9Sopenharmony_ci        all_dependency_maps.append(_BUILD_DEPENDENCIES)
18833d722a9Sopenharmony_ci    if build_proc_macro:
18933d722a9Sopenharmony_ci        all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)
19033d722a9Sopenharmony_ci
19133d722a9Sopenharmony_ci    # Default to always using normal dependencies
19233d722a9Sopenharmony_ci    if not all_dependency_maps:
19333d722a9Sopenharmony_ci        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
19433d722a9Sopenharmony_ci
19533d722a9Sopenharmony_ci    dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)
19633d722a9Sopenharmony_ci
19733d722a9Sopenharmony_ci    if not dependencies:
19833d722a9Sopenharmony_ci        if dependencies == None:
19933d722a9Sopenharmony_ci            fail("Tried to get all_crate_deps for package " + package_name + " but that package had no Cargo.toml file")
20033d722a9Sopenharmony_ci        else:
20133d722a9Sopenharmony_ci            return []
20233d722a9Sopenharmony_ci
20333d722a9Sopenharmony_ci    crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())
20433d722a9Sopenharmony_ci    for condition, deps in dependencies.items():
20533d722a9Sopenharmony_ci        crate_deps += selects.with_or({_CONDITIONS[condition]: deps.values()})
20633d722a9Sopenharmony_ci
20733d722a9Sopenharmony_ci    return crate_deps
20833d722a9Sopenharmony_ci
20933d722a9Sopenharmony_cidef aliases(
21033d722a9Sopenharmony_ci        normal = False,
21133d722a9Sopenharmony_ci        normal_dev = False,
21233d722a9Sopenharmony_ci        proc_macro = False,
21333d722a9Sopenharmony_ci        proc_macro_dev = False,
21433d722a9Sopenharmony_ci        build = False,
21533d722a9Sopenharmony_ci        build_proc_macro = False,
21633d722a9Sopenharmony_ci        package_name = None):
21733d722a9Sopenharmony_ci    """Produces a map of Crate alias names to their original label
21833d722a9Sopenharmony_ci
21933d722a9Sopenharmony_ci    If no dependency kinds are specified, `normal` and `proc_macro` are used by default.
22033d722a9Sopenharmony_ci    Setting any one flag will otherwise determine the contents of the returned dict.
22133d722a9Sopenharmony_ci
22233d722a9Sopenharmony_ci    Args:
22333d722a9Sopenharmony_ci        normal (bool, optional): If True, normal dependencies are included in the
22433d722a9Sopenharmony_ci            output list.
22533d722a9Sopenharmony_ci        normal_dev (bool, optional): If True, normal dev dependencies will be
22633d722a9Sopenharmony_ci            included in the output list..
22733d722a9Sopenharmony_ci        proc_macro (bool, optional): If True, proc_macro dependencies are included
22833d722a9Sopenharmony_ci            in the output list.
22933d722a9Sopenharmony_ci        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
23033d722a9Sopenharmony_ci            included in the output list.
23133d722a9Sopenharmony_ci        build (bool, optional): If True, build dependencies are included
23233d722a9Sopenharmony_ci            in the output list.
23333d722a9Sopenharmony_ci        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
23433d722a9Sopenharmony_ci            included in the output list.
23533d722a9Sopenharmony_ci        package_name (str, optional): The package name of the set of dependencies to look up.
23633d722a9Sopenharmony_ci            Defaults to `native.package_name()` when unset.
23733d722a9Sopenharmony_ci
23833d722a9Sopenharmony_ci    Returns:
23933d722a9Sopenharmony_ci        dict: The aliases of all associated packages
24033d722a9Sopenharmony_ci    """
24133d722a9Sopenharmony_ci    if package_name == None:
24233d722a9Sopenharmony_ci        package_name = native.package_name()
24333d722a9Sopenharmony_ci
24433d722a9Sopenharmony_ci    # Determine the relevant maps to use
24533d722a9Sopenharmony_ci    all_aliases_maps = []
24633d722a9Sopenharmony_ci    if normal:
24733d722a9Sopenharmony_ci        all_aliases_maps.append(_NORMAL_ALIASES)
24833d722a9Sopenharmony_ci    if normal_dev:
24933d722a9Sopenharmony_ci        all_aliases_maps.append(_NORMAL_DEV_ALIASES)
25033d722a9Sopenharmony_ci    if proc_macro:
25133d722a9Sopenharmony_ci        all_aliases_maps.append(_PROC_MACRO_ALIASES)
25233d722a9Sopenharmony_ci    if proc_macro_dev:
25333d722a9Sopenharmony_ci        all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)
25433d722a9Sopenharmony_ci    if build:
25533d722a9Sopenharmony_ci        all_aliases_maps.append(_BUILD_ALIASES)
25633d722a9Sopenharmony_ci    if build_proc_macro:
25733d722a9Sopenharmony_ci        all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)
25833d722a9Sopenharmony_ci
25933d722a9Sopenharmony_ci    # Default to always using normal aliases
26033d722a9Sopenharmony_ci    if not all_aliases_maps:
26133d722a9Sopenharmony_ci        all_aliases_maps.append(_NORMAL_ALIASES)
26233d722a9Sopenharmony_ci        all_aliases_maps.append(_PROC_MACRO_ALIASES)
26333d722a9Sopenharmony_ci
26433d722a9Sopenharmony_ci    aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)
26533d722a9Sopenharmony_ci
26633d722a9Sopenharmony_ci    if not aliases:
26733d722a9Sopenharmony_ci        return dict()
26833d722a9Sopenharmony_ci
26933d722a9Sopenharmony_ci    common_items = aliases.pop(_COMMON_CONDITION, {}).items()
27033d722a9Sopenharmony_ci
27133d722a9Sopenharmony_ci    # If there are only common items in the dictionary, immediately return them
27233d722a9Sopenharmony_ci    if not len(aliases.keys()) == 1:
27333d722a9Sopenharmony_ci        return dict(common_items)
27433d722a9Sopenharmony_ci
27533d722a9Sopenharmony_ci    # Build a single select statement where each conditional has accounted for the
27633d722a9Sopenharmony_ci    # common set of aliases.
27733d722a9Sopenharmony_ci    crate_aliases = {"//conditions:default": common_items}
27833d722a9Sopenharmony_ci    for condition, deps in aliases.items():
27933d722a9Sopenharmony_ci        condition_triples = _CONDITIONS[condition]
28033d722a9Sopenharmony_ci        if condition_triples in crate_aliases:
28133d722a9Sopenharmony_ci            crate_aliases[condition_triples].update(deps)
28233d722a9Sopenharmony_ci        else:
28333d722a9Sopenharmony_ci            crate_aliases.update({_CONDITIONS[condition]: dict(deps.items() + common_items)})
28433d722a9Sopenharmony_ci
28533d722a9Sopenharmony_ci    return selects.with_or(crate_aliases)
28633d722a9Sopenharmony_ci
28733d722a9Sopenharmony_ci###############################################################################
28833d722a9Sopenharmony_ci# WORKSPACE MEMBER DEPS AND ALIASES
28933d722a9Sopenharmony_ci###############################################################################
29033d722a9Sopenharmony_ci
29133d722a9Sopenharmony_ci_NORMAL_DEPENDENCIES = {
29233d722a9Sopenharmony_ci    "third-party": {
29333d722a9Sopenharmony_ci        _COMMON_CONDITION: {
29433d722a9Sopenharmony_ci            "cc": "@vendor__cc-1.0.79//:cc",
29533d722a9Sopenharmony_ci            "clap": "@vendor__clap-4.3.0//:clap",
29633d722a9Sopenharmony_ci            "codespan-reporting": "@vendor__codespan-reporting-0.11.1//:codespan_reporting",
29733d722a9Sopenharmony_ci            "once_cell": "@vendor__once_cell-1.17.1//:once_cell",
29833d722a9Sopenharmony_ci            "proc-macro2": "@vendor__proc-macro2-1.0.59//:proc_macro2",
29933d722a9Sopenharmony_ci            "quote": "@vendor__quote-1.0.28//:quote",
30033d722a9Sopenharmony_ci            "scratch": "@vendor__scratch-1.0.5//:scratch",
30133d722a9Sopenharmony_ci            "syn": "@vendor__syn-2.0.17//:syn",
30233d722a9Sopenharmony_ci        },
30333d722a9Sopenharmony_ci    },
30433d722a9Sopenharmony_ci}
30533d722a9Sopenharmony_ci
30633d722a9Sopenharmony_ci_NORMAL_ALIASES = {
30733d722a9Sopenharmony_ci    "third-party": {
30833d722a9Sopenharmony_ci        _COMMON_CONDITION: {
30933d722a9Sopenharmony_ci        },
31033d722a9Sopenharmony_ci    },
31133d722a9Sopenharmony_ci}
31233d722a9Sopenharmony_ci
31333d722a9Sopenharmony_ci_NORMAL_DEV_DEPENDENCIES = {
31433d722a9Sopenharmony_ci    "third-party": {
31533d722a9Sopenharmony_ci    },
31633d722a9Sopenharmony_ci}
31733d722a9Sopenharmony_ci
31833d722a9Sopenharmony_ci_NORMAL_DEV_ALIASES = {
31933d722a9Sopenharmony_ci    "third-party": {
32033d722a9Sopenharmony_ci    },
32133d722a9Sopenharmony_ci}
32233d722a9Sopenharmony_ci
32333d722a9Sopenharmony_ci_PROC_MACRO_DEPENDENCIES = {
32433d722a9Sopenharmony_ci    "third-party": {
32533d722a9Sopenharmony_ci    },
32633d722a9Sopenharmony_ci}
32733d722a9Sopenharmony_ci
32833d722a9Sopenharmony_ci_PROC_MACRO_ALIASES = {
32933d722a9Sopenharmony_ci    "third-party": {
33033d722a9Sopenharmony_ci    },
33133d722a9Sopenharmony_ci}
33233d722a9Sopenharmony_ci
33333d722a9Sopenharmony_ci_PROC_MACRO_DEV_DEPENDENCIES = {
33433d722a9Sopenharmony_ci    "third-party": {
33533d722a9Sopenharmony_ci    },
33633d722a9Sopenharmony_ci}
33733d722a9Sopenharmony_ci
33833d722a9Sopenharmony_ci_PROC_MACRO_DEV_ALIASES = {
33933d722a9Sopenharmony_ci    "third-party": {
34033d722a9Sopenharmony_ci    },
34133d722a9Sopenharmony_ci}
34233d722a9Sopenharmony_ci
34333d722a9Sopenharmony_ci_BUILD_DEPENDENCIES = {
34433d722a9Sopenharmony_ci    "third-party": {
34533d722a9Sopenharmony_ci    },
34633d722a9Sopenharmony_ci}
34733d722a9Sopenharmony_ci
34833d722a9Sopenharmony_ci_BUILD_ALIASES = {
34933d722a9Sopenharmony_ci    "third-party": {
35033d722a9Sopenharmony_ci    },
35133d722a9Sopenharmony_ci}
35233d722a9Sopenharmony_ci
35333d722a9Sopenharmony_ci_BUILD_PROC_MACRO_DEPENDENCIES = {
35433d722a9Sopenharmony_ci    "third-party": {
35533d722a9Sopenharmony_ci    },
35633d722a9Sopenharmony_ci}
35733d722a9Sopenharmony_ci
35833d722a9Sopenharmony_ci_BUILD_PROC_MACRO_ALIASES = {
35933d722a9Sopenharmony_ci    "third-party": {
36033d722a9Sopenharmony_ci    },
36133d722a9Sopenharmony_ci}
36233d722a9Sopenharmony_ci
36333d722a9Sopenharmony_ci_CONDITIONS = {
36433d722a9Sopenharmony_ci    "cfg(windows)": ["aarch64-pc-windows-msvc", "i686-pc-windows-msvc", "x86_64-pc-windows-msvc"],
36533d722a9Sopenharmony_ci    "i686-pc-windows-gnu": [],
36633d722a9Sopenharmony_ci    "x86_64-pc-windows-gnu": [],
36733d722a9Sopenharmony_ci}
36833d722a9Sopenharmony_ci
36933d722a9Sopenharmony_ci###############################################################################
37033d722a9Sopenharmony_ci
37133d722a9Sopenharmony_cidef crate_repositories():
37233d722a9Sopenharmony_ci    """A macro for defining repositories for all generated crates"""
37333d722a9Sopenharmony_ci    maybe(
37433d722a9Sopenharmony_ci        http_archive,
37533d722a9Sopenharmony_ci        name = "vendor__anstyle-1.0.0",
37633d722a9Sopenharmony_ci        sha256 = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d",
37733d722a9Sopenharmony_ci        type = "tar.gz",
37833d722a9Sopenharmony_ci        urls = ["https://crates.io/api/v1/crates/anstyle/1.0.0/download"],
37933d722a9Sopenharmony_ci        strip_prefix = "anstyle-1.0.0",
38033d722a9Sopenharmony_ci        build_file = Label("@cxx.rs//third-party/bazel:BUILD.anstyle-1.0.0.bazel"),
38133d722a9Sopenharmony_ci    )
38233d722a9Sopenharmony_ci
38333d722a9Sopenharmony_ci    maybe(
38433d722a9Sopenharmony_ci        http_archive,
38533d722a9Sopenharmony_ci        name = "vendor__bitflags-1.3.2",
38633d722a9Sopenharmony_ci        sha256 = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a",
38733d722a9Sopenharmony_ci        type = "tar.gz",
38833d722a9Sopenharmony_ci        urls = ["https://crates.io/api/v1/crates/bitflags/1.3.2/download"],
38933d722a9Sopenharmony_ci        strip_prefix = "bitflags-1.3.2",
39033d722a9Sopenharmony_ci        build_file = Label("@cxx.rs//third-party/bazel:BUILD.bitflags-1.3.2.bazel"),
39133d722a9Sopenharmony_ci    )
39233d722a9Sopenharmony_ci
39333d722a9Sopenharmony_ci    maybe(
39433d722a9Sopenharmony_ci        http_archive,
39533d722a9Sopenharmony_ci        name = "vendor__cc-1.0.79",
39633d722a9Sopenharmony_ci        sha256 = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f",
39733d722a9Sopenharmony_ci        type = "tar.gz",
39833d722a9Sopenharmony_ci        urls = ["https://crates.io/api/v1/crates/cc/1.0.79/download"],
39933d722a9Sopenharmony_ci        strip_prefix = "cc-1.0.79",
40033d722a9Sopenharmony_ci        build_file = Label("@cxx.rs//third-party/bazel:BUILD.cc-1.0.79.bazel"),
40133d722a9Sopenharmony_ci    )
40233d722a9Sopenharmony_ci
40333d722a9Sopenharmony_ci    maybe(
40433d722a9Sopenharmony_ci        http_archive,
40533d722a9Sopenharmony_ci        name = "vendor__clap-4.3.0",
40633d722a9Sopenharmony_ci        sha256 = "93aae7a4192245f70fe75dd9157fc7b4a5bf53e88d30bd4396f7d8f9284d5acc",
40733d722a9Sopenharmony_ci        type = "tar.gz",
40833d722a9Sopenharmony_ci        urls = ["https://crates.io/api/v1/crates/clap/4.3.0/download"],
40933d722a9Sopenharmony_ci        strip_prefix = "clap-4.3.0",
41033d722a9Sopenharmony_ci        build_file = Label("@cxx.rs//third-party/bazel:BUILD.clap-4.3.0.bazel"),
41133d722a9Sopenharmony_ci    )
41233d722a9Sopenharmony_ci
41333d722a9Sopenharmony_ci    maybe(
41433d722a9Sopenharmony_ci        http_archive,
41533d722a9Sopenharmony_ci        name = "vendor__clap_builder-4.3.0",
41633d722a9Sopenharmony_ci        sha256 = "4f423e341edefb78c9caba2d9c7f7687d0e72e89df3ce3394554754393ac3990",
41733d722a9Sopenharmony_ci        type = "tar.gz",
41833d722a9Sopenharmony_ci        urls = ["https://crates.io/api/v1/crates/clap_builder/4.3.0/download"],
41933d722a9Sopenharmony_ci        strip_prefix = "clap_builder-4.3.0",
42033d722a9Sopenharmony_ci        build_file = Label("@cxx.rs//third-party/bazel:BUILD.clap_builder-4.3.0.bazel"),
42133d722a9Sopenharmony_ci    )
42233d722a9Sopenharmony_ci
42333d722a9Sopenharmony_ci    maybe(
42433d722a9Sopenharmony_ci        http_archive,
42533d722a9Sopenharmony_ci        name = "vendor__clap_lex-0.5.0",
42633d722a9Sopenharmony_ci        sha256 = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b",
42733d722a9Sopenharmony_ci        type = "tar.gz",
42833d722a9Sopenharmony_ci        urls = ["https://crates.io/api/v1/crates/clap_lex/0.5.0/download"],
42933d722a9Sopenharmony_ci        strip_prefix = "clap_lex-0.5.0",
43033d722a9Sopenharmony_ci        build_file = Label("@cxx.rs//third-party/bazel:BUILD.clap_lex-0.5.0.bazel"),
43133d722a9Sopenharmony_ci    )
43233d722a9Sopenharmony_ci
43333d722a9Sopenharmony_ci    maybe(
43433d722a9Sopenharmony_ci        http_archive,
43533d722a9Sopenharmony_ci        name = "vendor__codespan-reporting-0.11.1",
43633d722a9Sopenharmony_ci        sha256 = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e",
43733d722a9Sopenharmony_ci        type = "tar.gz",
43833d722a9Sopenharmony_ci        urls = ["https://crates.io/api/v1/crates/codespan-reporting/0.11.1/download"],
43933d722a9Sopenharmony_ci        strip_prefix = "codespan-reporting-0.11.1",
44033d722a9Sopenharmony_ci        build_file = Label("@cxx.rs//third-party/bazel:BUILD.codespan-reporting-0.11.1.bazel"),
44133d722a9Sopenharmony_ci    )
44233d722a9Sopenharmony_ci
44333d722a9Sopenharmony_ci    maybe(
44433d722a9Sopenharmony_ci        http_archive,
44533d722a9Sopenharmony_ci        name = "vendor__once_cell-1.17.1",
44633d722a9Sopenharmony_ci        sha256 = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3",
44733d722a9Sopenharmony_ci        type = "tar.gz",
44833d722a9Sopenharmony_ci        urls = ["https://crates.io/api/v1/crates/once_cell/1.17.1/download"],
44933d722a9Sopenharmony_ci        strip_prefix = "once_cell-1.17.1",
45033d722a9Sopenharmony_ci        build_file = Label("@cxx.rs//third-party/bazel:BUILD.once_cell-1.17.1.bazel"),
45133d722a9Sopenharmony_ci    )
45233d722a9Sopenharmony_ci
45333d722a9Sopenharmony_ci    maybe(
45433d722a9Sopenharmony_ci        http_archive,
45533d722a9Sopenharmony_ci        name = "vendor__proc-macro2-1.0.59",
45633d722a9Sopenharmony_ci        sha256 = "6aeca18b86b413c660b781aa319e4e2648a3e6f9eadc9b47e9038e6fe9f3451b",
45733d722a9Sopenharmony_ci        type = "tar.gz",
45833d722a9Sopenharmony_ci        urls = ["https://crates.io/api/v1/crates/proc-macro2/1.0.59/download"],
45933d722a9Sopenharmony_ci        strip_prefix = "proc-macro2-1.0.59",
46033d722a9Sopenharmony_ci        build_file = Label("@cxx.rs//third-party/bazel:BUILD.proc-macro2-1.0.59.bazel"),
46133d722a9Sopenharmony_ci    )
46233d722a9Sopenharmony_ci
46333d722a9Sopenharmony_ci    maybe(
46433d722a9Sopenharmony_ci        http_archive,
46533d722a9Sopenharmony_ci        name = "vendor__quote-1.0.28",
46633d722a9Sopenharmony_ci        sha256 = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488",
46733d722a9Sopenharmony_ci        type = "tar.gz",
46833d722a9Sopenharmony_ci        urls = ["https://crates.io/api/v1/crates/quote/1.0.28/download"],
46933d722a9Sopenharmony_ci        strip_prefix = "quote-1.0.28",
47033d722a9Sopenharmony_ci        build_file = Label("@cxx.rs//third-party/bazel:BUILD.quote-1.0.28.bazel"),
47133d722a9Sopenharmony_ci    )
47233d722a9Sopenharmony_ci
47333d722a9Sopenharmony_ci    maybe(
47433d722a9Sopenharmony_ci        http_archive,
47533d722a9Sopenharmony_ci        name = "vendor__scratch-1.0.5",
47633d722a9Sopenharmony_ci        sha256 = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1",
47733d722a9Sopenharmony_ci        type = "tar.gz",
47833d722a9Sopenharmony_ci        urls = ["https://crates.io/api/v1/crates/scratch/1.0.5/download"],
47933d722a9Sopenharmony_ci        strip_prefix = "scratch-1.0.5",
48033d722a9Sopenharmony_ci        build_file = Label("@cxx.rs//third-party/bazel:BUILD.scratch-1.0.5.bazel"),
48133d722a9Sopenharmony_ci    )
48233d722a9Sopenharmony_ci
48333d722a9Sopenharmony_ci    maybe(
48433d722a9Sopenharmony_ci        http_archive,
48533d722a9Sopenharmony_ci        name = "vendor__syn-2.0.17",
48633d722a9Sopenharmony_ci        sha256 = "45b6ddbb36c5b969c182aec3c4a0bce7df3fbad4b77114706a49aacc80567388",
48733d722a9Sopenharmony_ci        type = "tar.gz",
48833d722a9Sopenharmony_ci        urls = ["https://crates.io/api/v1/crates/syn/2.0.17/download"],
48933d722a9Sopenharmony_ci        strip_prefix = "syn-2.0.17",
49033d722a9Sopenharmony_ci        build_file = Label("@cxx.rs//third-party/bazel:BUILD.syn-2.0.17.bazel"),
49133d722a9Sopenharmony_ci    )
49233d722a9Sopenharmony_ci
49333d722a9Sopenharmony_ci    maybe(
49433d722a9Sopenharmony_ci        http_archive,
49533d722a9Sopenharmony_ci        name = "vendor__termcolor-1.2.0",
49633d722a9Sopenharmony_ci        sha256 = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6",
49733d722a9Sopenharmony_ci        type = "tar.gz",
49833d722a9Sopenharmony_ci        urls = ["https://crates.io/api/v1/crates/termcolor/1.2.0/download"],
49933d722a9Sopenharmony_ci        strip_prefix = "termcolor-1.2.0",
50033d722a9Sopenharmony_ci        build_file = Label("@cxx.rs//third-party/bazel:BUILD.termcolor-1.2.0.bazel"),
50133d722a9Sopenharmony_ci    )
50233d722a9Sopenharmony_ci
50333d722a9Sopenharmony_ci    maybe(
50433d722a9Sopenharmony_ci        http_archive,
50533d722a9Sopenharmony_ci        name = "vendor__unicode-ident-1.0.9",
50633d722a9Sopenharmony_ci        sha256 = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0",
50733d722a9Sopenharmony_ci        type = "tar.gz",
50833d722a9Sopenharmony_ci        urls = ["https://crates.io/api/v1/crates/unicode-ident/1.0.9/download"],
50933d722a9Sopenharmony_ci        strip_prefix = "unicode-ident-1.0.9",
51033d722a9Sopenharmony_ci        build_file = Label("@cxx.rs//third-party/bazel:BUILD.unicode-ident-1.0.9.bazel"),
51133d722a9Sopenharmony_ci    )
51233d722a9Sopenharmony_ci
51333d722a9Sopenharmony_ci    maybe(
51433d722a9Sopenharmony_ci        http_archive,
51533d722a9Sopenharmony_ci        name = "vendor__unicode-width-0.1.10",
51633d722a9Sopenharmony_ci        sha256 = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b",
51733d722a9Sopenharmony_ci        type = "tar.gz",
51833d722a9Sopenharmony_ci        urls = ["https://crates.io/api/v1/crates/unicode-width/0.1.10/download"],
51933d722a9Sopenharmony_ci        strip_prefix = "unicode-width-0.1.10",
52033d722a9Sopenharmony_ci        build_file = Label("@cxx.rs//third-party/bazel:BUILD.unicode-width-0.1.10.bazel"),
52133d722a9Sopenharmony_ci    )
52233d722a9Sopenharmony_ci
52333d722a9Sopenharmony_ci    maybe(
52433d722a9Sopenharmony_ci        http_archive,
52533d722a9Sopenharmony_ci        name = "vendor__winapi-0.3.9",
52633d722a9Sopenharmony_ci        sha256 = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419",
52733d722a9Sopenharmony_ci        type = "tar.gz",
52833d722a9Sopenharmony_ci        urls = ["https://crates.io/api/v1/crates/winapi/0.3.9/download"],
52933d722a9Sopenharmony_ci        strip_prefix = "winapi-0.3.9",
53033d722a9Sopenharmony_ci        build_file = Label("@cxx.rs//third-party/bazel:BUILD.winapi-0.3.9.bazel"),
53133d722a9Sopenharmony_ci    )
53233d722a9Sopenharmony_ci
53333d722a9Sopenharmony_ci    maybe(
53433d722a9Sopenharmony_ci        http_archive,
53533d722a9Sopenharmony_ci        name = "vendor__winapi-i686-pc-windows-gnu-0.4.0",
53633d722a9Sopenharmony_ci        sha256 = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6",
53733d722a9Sopenharmony_ci        type = "tar.gz",
53833d722a9Sopenharmony_ci        urls = ["https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download"],
53933d722a9Sopenharmony_ci        strip_prefix = "winapi-i686-pc-windows-gnu-0.4.0",
54033d722a9Sopenharmony_ci        build_file = Label("@cxx.rs//third-party/bazel:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel"),
54133d722a9Sopenharmony_ci    )
54233d722a9Sopenharmony_ci
54333d722a9Sopenharmony_ci    maybe(
54433d722a9Sopenharmony_ci        http_archive,
54533d722a9Sopenharmony_ci        name = "vendor__winapi-util-0.1.5",
54633d722a9Sopenharmony_ci        sha256 = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178",
54733d722a9Sopenharmony_ci        type = "tar.gz",
54833d722a9Sopenharmony_ci        urls = ["https://crates.io/api/v1/crates/winapi-util/0.1.5/download"],
54933d722a9Sopenharmony_ci        strip_prefix = "winapi-util-0.1.5",
55033d722a9Sopenharmony_ci        build_file = Label("@cxx.rs//third-party/bazel:BUILD.winapi-util-0.1.5.bazel"),
55133d722a9Sopenharmony_ci    )
55233d722a9Sopenharmony_ci
55333d722a9Sopenharmony_ci    maybe(
55433d722a9Sopenharmony_ci        http_archive,
55533d722a9Sopenharmony_ci        name = "vendor__winapi-x86_64-pc-windows-gnu-0.4.0",
55633d722a9Sopenharmony_ci        sha256 = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f",
55733d722a9Sopenharmony_ci        type = "tar.gz",
55833d722a9Sopenharmony_ci        urls = ["https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download"],
55933d722a9Sopenharmony_ci        strip_prefix = "winapi-x86_64-pc-windows-gnu-0.4.0",
56033d722a9Sopenharmony_ci        build_file = Label("@cxx.rs//third-party/bazel:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel"),
56133d722a9Sopenharmony_ci    )
562