aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordimdim11 <dimdim11@yandex-team.com>2025-03-04 11:29:28 +0300
committerdimdim11 <dimdim11@yandex-team.com>2025-03-04 11:50:08 +0300
commitd8a124a50d0c6f85ff252c02db51c4e648c55cf2 (patch)
treefccb2695069c3f72f427e2134958a46cdada7204
parentccddb3f12b8c52ccf11e911adb6d03d8b1a2d961 (diff)
downloadydb-d8a124a50d0c6f85ff252c02db51c4e648c55cf2.tar.gz
Uniqueness conan by OS requires
Uniqueness conan by OS requires commit_hash:f83533a2ed34e7aa4cba6501e56c5ca7b9aa88a6
-rw-r--r--build/export_generators/cmake/conanfile.py.jinja24
1 files changed, 14 insertions, 10 deletions
diff --git a/build/export_generators/cmake/conanfile.py.jinja b/build/export_generators/cmake/conanfile.py.jinja
index ca788509115..13717d007d1 100644
--- a/build/export_generators/cmake/conanfile.py.jinja
+++ b/build/export_generators/cmake/conanfile.py.jinja
@@ -33,11 +33,13 @@ class App(ConanFile):
{%- endif -%}
{%- if (has_conan_os_depends_requires) -%}
-{%- for conan_os_depend in conan.os_depends|selectattr('requires') %}
-{%- if (conan_os_depend.requires|length) %}
- if self.settings.os == "{{ conan_os_depend.os }}":
-{%- for conan_require in conan_os_depend.requires %}
- self.requires("{{ conan_require }}")
+{%- set oses = conan.os_depends|selectattr('os')|map(attribute='os')|unique -%}
+{%- for os in oses %}
+{%- set os_requires = conan.os_depends|selectattr('os', 'eq', os)|selectattr('requires')|map(attribute='requires')|sum|unique -%}
+{%- if (os_requires|length) %}
+ if self.settings.os == "{{ os }}":
+{%- for os_require in os_requires %}
+ self.requires("{{ os_require }}")
{%- endfor -%}
{%- endif -%}
{%- endfor -%}
@@ -55,11 +57,13 @@ class App(ConanFile):
{%- endif -%}
{%- if (has_conan_os_depends_tool_requires) -%}
-{%- for conan_os_depend in conan.os_depends|selectattr('tool_requires') %}
-{%- if (conan_os_depend.tool_requires|length) %}
- if self.settings.os == "{{ conan_os_depend.os }}":
-{%- for conan_tool_require in conan_os_depend.tool_requires %}
- self.tool_requires("{{ conan_tool_require }}")
+{%- set oses = conan.os_depends|selectattr('os')|map(attribute='os')|unique -%}
+{%- for os in oses %}
+{%- set os_tool_requires = conan.os_depends|selectattr('os', 'eq', os)|selectattr('tool_requires')|map(attribute='tool_requires')|sum|unique -%}
+{%- if (os_tool_requires|length) %}
+ if self.settings.os == "{{ os }}":
+{%- for os_tool_require in os_tool_requires %}
+ self.requires("{{ os_tool_require }}")
{%- endfor -%}
{%- endif -%}
{%- endfor -%}