aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordimdim11 <dimdim11@yandex-team.com>2024-08-22 10:43:42 +0300
committerdimdim11 <dimdim11@yandex-team.com>2024-08-22 10:54:57 +0300
commit43743155d55cd20e7d2e08bc94091a0c92337bb0 (patch)
tree6261ef2398005478c6fe0f74c9fe4c69100e4b65
parent1fbd27b4e37aecbce5bc29b1084ebc08d49c44ab (diff)
downloadydb-43743155d55cd20e7d2e08bc94091a0c92337bb0.tar.gz
Fix headers only library templates
Fix headers only libraries 8d98d2115e9207d233331bf0ab2ba307d84b255c
-rw-r--r--build/export_generators/cmake/dir_targets.jinja9
-rw-r--r--build/export_generators/cmake/merge_platforms_cmake_lists.jinja4
-rw-r--r--build/export_generators/cmake/target_cmake_lists.jinja20
3 files changed, 17 insertions, 16 deletions
diff --git a/build/export_generators/cmake/dir_targets.jinja b/build/export_generators/cmake/dir_targets.jinja
index d267d63ce8..fa0b43e679 100644
--- a/build/export_generators/cmake/dir_targets.jinja
+++ b/build/export_generators/cmake/dir_targets.jinja
@@ -63,8 +63,13 @@
{{ RenderTargetOptions(target_name, prefix, target_options.publics, only_option, exclude_options) }}
{%- endif -%}
-{%- if not(is_really_fake_module) and (target_options.privates is defined) -%}
-{{ RenderTargetOptions(target_name, ' PRIVATE', target_options.privates, only_option, exclude_options) }}
+{%- if (target_options.privates is defined) -%}
+{%- if is_really_fake_module -%}
+{%- set prefix = ' INTERFACE' -%}
+{%- else -%}
+{%- set prefix = ' PRIVATE' -%}
+{%- endif -%}
+{{ RenderTargetOptions(target_name, prefix, target_options.privates, only_option, exclude_options) }}
{%- endif -%}
{%- endmacro -%}
diff --git a/build/export_generators/cmake/merge_platforms_cmake_lists.jinja b/build/export_generators/cmake/merge_platforms_cmake_lists.jinja
index 627bfc17e7..a0e953598f 100644
--- a/build/export_generators/cmake/merge_platforms_cmake_lists.jinja
+++ b/build/export_generators/cmake/merge_platforms_cmake_lists.jinja
@@ -1,6 +1,6 @@
-{% include '[generator]/disclaimer.jinja' %}
+{%- include '[generator]/disclaimer.jinja' -%}
-{% if platform_names|length -%}
+{%- if platform_names|length %}
{%- for platform_name in platform_names %}
{% if not loop.first %}else{% endif %}if ({{ platform_conditions[platform_name] }})
include(CMakeLists.{{ platform_name }}.txt)
diff --git a/build/export_generators/cmake/target_cmake_lists.jinja b/build/export_generators/cmake/target_cmake_lists.jinja
index dc28fbfd81..a333641721 100644
--- a/build/export_generators/cmake/target_cmake_lists.jinja
+++ b/build/export_generators/cmake/target_cmake_lists.jinja
@@ -24,25 +24,21 @@
{%- endif -%}
{%- endif -%}
{%- if target_sources|length -%}
-{%- for target_source in target_sources -%}
-{%- if not (target_source.endswith('.h') or target_source.endswith('.hh') or target_source.endswith('.hpp') or target_source.endswith('.i') or target_source.endswith('.inc') or target_source.endswith('.inc.d')) -%}
-{#- Any non-header clear flag only_headers_like_sources_library -#}
-{%- set only_headers_like_sources_library = false -%}
-{%- endif -%}
-{%- endfor -%}
-{%- else -%}
-{#- Without target sources flag only_headers_like_sources_library -#}
-{%- set only_headers_like_sources_library = false -%}
+{%- set target_sources_non_headers = reject_by_ends(target_sources, ['.h', '.hh', '.hpp']) -%}
+{%- if (target_sources_non_headers|length) -%}
+{#- Any non-header clear flag only_headers_like_sources_library -#}
+{%- set only_headers_like_sources_library = false -%}
+{%- endif -%}
{%- endif -%}
{%- else -%}
{%- set only_headers_like_sources_library = false -%}
{%- endif -%}
-{%- set is_really_fake_module = (current_target.is_fake_module) and not(only_headers_like_sources_library) -%}
+{%- set is_really_fake_module = (current_target.is_fake_module) and (only_headers_like_sources_library) -%}
{{ macro }}({{ name }}
{%- if current_target.is_fake_module -%}
-{%- if only_headers_like_sources_library %} STATIC{%- else %} INTERFACE{%- endif -%}
+{%- if only_headers_like_sources_library %} INTERFACE{%- else %} STATIC{%- endif -%}
{%- endif -%}
{%- if macro_args|length > 0 -%}
{%- for arg in macro_args %}
@@ -50,7 +46,7 @@
{%- endfor -%}
{%- endif -%}
)
-{% if (current_target.is_fake_module) and (only_headers_like_sources_library) %}
+{% if (current_target.is_fake_module) and not(only_headers_like_sources_library) %}
set_property(TARGET {{ name }} PROPERTY LINKER_LANGUAGE CXX)
{%- endif -%}