cargo-bazel 0.18.0

A collection of tools which use Cargo to generate build targets for Bazel
Documentation
{
    {%- for id, path in context.workspace_members %}
    {%- set workspace_member = context.crates | get(key=id) %}
    "{{ path }}": {
    {%- if deps_type in ["normal"] %}
    {%- set_global deps_set = workspace_member.common_attrs | get(key="deps", default=default_select_list) %}
    {%- elif deps_type in ["normal-dev"] %}
    {%- set_global deps_set = workspace_member.common_attrs | get(key="deps_dev", default=default_select_list) %}
    {%- elif deps_type in ["proc-macro"] %}
    {%- set_global deps_set = workspace_member.common_attrs | get(key="proc_macro_deps", default=default_select_list) %}
    {%- elif deps_type in ["proc-macro-dev"] %}
    {%- set_global deps_set = workspace_member.common_attrs | get(key="proc_macro_deps_dev", default=default_select_list) %}
    {%- elif deps_type in ["build"] %}
        {%- if workspace_member | get(key="build_script_attrs", default=Null) %}
        {%- set_global deps_set = workspace_member.build_script_attrs | get(key="deps", default=default_select_list) %}
        {%- else %}
        {%- set_global deps_set = default_select_list %}
        {%- endif %}
    {%- elif deps_type in ["build-proc-macro"] %}
        {%- if workspace_member | get(key="build_script_attrs", default=Null) %}
        {%- set_global deps_set = workspace_member.build_script_attrs | get(key="proc_macro_deps", default=default_select_list) %}
        {%- else %}
        {%- set_global deps_set = default_select_list %}
        {%- endif %}
    {%- else %}
    {{ throw(message= "Unexpected dependency type '" ~ deps_type ~ "' for '" ~ id ~ "'") }}
    {%- endif %}
        {%- if deps_set.common | length %}
        _COMMON_CONDITION: {
            {%- for dep in deps_set.common %}
            {%- if dep.id in context.workspace_members %}{% continue %}}{% endif %}{# Workspace member repositories are not defined, skip adding their labels here #}
            {%- set crate = context.crates | get(key=dep.id) %}
            "{{ dep | get(key="alias", default=crate.name) }}": Label("{{ crate_alias(name = crate.name, version = crate.version, target = dep.target) }}"),
            {%- endfor %}
        },
        {%- endif %}
        {%- if deps_set.selects | length %}
        {%- for condition, deps in deps_set.selects %}
        "{{ condition | addslashes }}": {
            {%- for dep in deps %}
            {%- if dep.id in context.workspace_members %}{% continue %}}{% endif %}{# Workspace member repositories are not defined, skip adding their labels here #}
            {%- set crate = context.crates | get(key=dep.id) %}
            "{{ dep | get(key="alias", default=crate.name) }}": Label("{{ crate_alias(name = crate.name, version = crate.version, target = dep.target) }}"),
            {%- endfor %}
        },
        {%- endfor %}
        {%- endif %}
    },
    {%- endfor %}
}