blob: c9f169df3e31686ecbe7c70c43029f073c5e4ad4 [file] [log] [blame]
{
{%- 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) }}": "{{ crate_label(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) }}": "{{ crate_label(name = crate.name, version = crate.version, target = dep.target) }}",
{%- endfor %}
},
{%- endfor %}
{%- endif %}
},
{%- endfor %}
}