1{
2    {%- for id, path in context.workspace_members %}
3    {%- set workspace_member = context.crates | get(key=id) %}
4    "{{ path }}": {
5    {%- if deps_type in ["normal"] %}
6    {%- set_global deps_set = workspace_member.common_attrs | get(key="deps", default=default_select_list) %}
7    {%- elif deps_type in ["normal-dev"] %}
8    {%- set_global deps_set = workspace_member.common_attrs | get(key="deps_dev", default=default_select_list) %}
9    {%- elif deps_type in ["proc-macro"] %}
10    {%- set_global deps_set = workspace_member.common_attrs | get(key="proc_macro_deps", default=default_select_list) %}
11    {%- elif deps_type in ["proc-macro-dev"] %}
12    {%- set_global deps_set = workspace_member.common_attrs | get(key="proc_macro_deps_dev", default=default_select_list) %}
13    {%- elif deps_type in ["build"] %}
14        {%- if workspace_member | get(key="build_script_attrs", default=Null) %}
15        {%- set_global deps_set = workspace_member.build_script_attrs | get(key="deps", default=default_select_list) %}
16        {%- else %}
17        {%- set_global deps_set = default_select_list %}
18        {%- endif %}
19    {%- elif deps_type in ["build-proc-macro"] %}
20        {%- if workspace_member | get(key="build_script_attrs", default=Null) %}
21        {%- set_global deps_set = workspace_member.build_script_attrs | get(key="proc_macro_deps", default=default_select_list) %}
22        {%- else %}
23        {%- set_global deps_set = default_select_list %}
24        {%- endif %}
25    {%- else %}
26    {%- endif %}
27        {%- if deps_set.common | length %}
28        _COMMON_CONDITION: {
29            {%- for dep in deps_set.common %}
30            {%- if dep.id in context.workspace_members %}{% continue %}}{% endif %}{# Workspace member repositories are not defined, skip adding their labels here #}
31            {%- set crate = context.crates | get(key=dep.id) %}
32            {%- if dep | get(key="alias", default=Null) %}
33            "{{ crate_label(name = crate.name, version = crate.version, target = crate.name) }}": "{{ dep.alias }}",
34            {%- endif %}
35            {%- endfor %}
36        },
37        {%- endif %}
38        {%- if deps_set.selects | length %}
39        {%- for condition, deps in deps_set.selects %}
40        "{{ condition | addslashes }}": {
41            {%- for dep in deps %}
42            {%- if dep.id in context.workspace_members %}{% continue %}}{% endif %}{# Workspace member repositories are not defined, skip adding their labels here #}
43            {%- if dep | get(key="alias", default=Null) %}
44            {%- set crate = context.crates | get(key=dep.id) %}
45            "{{ crate_label(name = crate.name, version = crate.version, target = crate.name) }}": "{{ dep.alias }}",
46            {%- endif %}
47            {%- endfor %}
48        },
49        {%- endfor %}
50        {%- endif %}
51    },
52    {%- endfor %}
53}
54