diff options
author | dimdim11 <dimdim11@yandex-team.com> | 2024-08-22 10:43:42 +0300 |
---|---|---|
committer | dimdim11 <dimdim11@yandex-team.com> | 2024-08-22 10:54:57 +0300 |
commit | 43743155d55cd20e7d2e08bc94091a0c92337bb0 (patch) | |
tree | 6261ef2398005478c6fe0f74c9fe4c69100e4b65 | |
parent | 1fbd27b4e37aecbce5bc29b1084ebc08d49c44ab (diff) | |
download | ydb-43743155d55cd20e7d2e08bc94091a0c92337bb0.tar.gz |
Fix headers only library templates
Fix headers only libraries
8d98d2115e9207d233331bf0ab2ba307d84b255c
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 -%} |