Skip to content

Commit 57e0c8c

Browse files
committed
dependability_analysis: propagate ancillary files from sub-analyses
1 parent 822e77f commit 57e0c8c

1 file changed

Lines changed: 12 additions & 8 deletions

File tree

bazel/rules/rules_score/private/dependability_analysis.bzl

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,21 +30,23 @@ load("//bazel/rules/rules_score/private:lobster_config.bzl", "format_lobster_sou
3030
# Private Helpers
3131
# ============================================================================
3232

33-
def _collect_analysis_providers(sa, rst_srcs_list, rst_deps_list, lobster_files):
33+
def _collect_analysis_providers(sa, rst_srcs_list, rst_deps_list, rst_ancillary_list, lobster_files):
3434
"""Collect analysis providers from a single sub-analysis target.
3535
3636
Updates the provided lists/dicts in-place.
3737
3838
Args:
39-
sa: A sub-analysis target (fmea or security).
40-
rst_srcs_list: List of depsets to extend with SphinxSourcesInfo.srcs.
41-
rst_deps_list: List of depsets to extend with SphinxSourcesInfo.deps.
42-
lobster_files: Dict to update with AnalysisInfo.lobster_files
43-
(canonical name → File).
39+
sa: A sub-analysis target (fmea or security).
40+
rst_srcs_list: List of depsets to extend with SphinxSourcesInfo.srcs.
41+
rst_deps_list: List of depsets to extend with SphinxSourcesInfo.deps.
42+
rst_ancillary_list: List of depsets to extend with SphinxSourcesInfo.ancillary.
43+
lobster_files: Dict to update with AnalysisInfo.lobster_files
44+
(canonical name → File).
4445
"""
4546
if SphinxSourcesInfo in sa:
4647
rst_srcs_list.append(sa[SphinxSourcesInfo].srcs)
4748
rst_deps_list.append(sa[SphinxSourcesInfo].deps)
49+
rst_ancillary_list.append(sa[SphinxSourcesInfo].ancillary)
4850
if AnalysisInfo in sa:
4951
lobster_files.update(sa[AnalysisInfo].lobster_files)
5052

@@ -74,6 +76,7 @@ def _dependability_analysis_impl(ctx):
7476

7577
rst_srcs_transitive = [dfa_rst_files]
7678
rst_deps_transitive = [dfa_rst_files]
79+
rst_ancillary_transitive = []
7780
lobster_files = {} # canonical name → File, merged from all sub-analyses
7881

7982
# -------------------------------------------------------------------------
@@ -82,15 +85,15 @@ def _dependability_analysis_impl(ctx):
8285
fmea_output_files = []
8386
for sa in ctx.attr.fmea:
8487
fmea_output_files.append(sa[DefaultInfo].files)
85-
_collect_analysis_providers(sa, rst_srcs_transitive, rst_deps_transitive, lobster_files)
88+
_collect_analysis_providers(sa, rst_srcs_transitive, rst_deps_transitive, rst_ancillary_transitive, lobster_files)
8689

8790
# -------------------------------------------------------------------------
8891
# Collect from security_analysis targets
8992
# -------------------------------------------------------------------------
9093
security_output_files = []
9194
for sa in ctx.attr.security_analysis:
9295
security_output_files.append(sa[DefaultInfo].files)
93-
_collect_analysis_providers(sa, rst_srcs_transitive, rst_deps_transitive, lobster_files)
96+
_collect_analysis_providers(sa, rst_srcs_transitive, rst_deps_transitive, rst_ancillary_transitive, lobster_files)
9497

9598
# Architectural design sphinx deps (optional)
9699
if ctx.attr.arch_design and SphinxSourcesInfo in ctx.attr.arch_design:
@@ -182,6 +185,7 @@ def _dependability_analysis_impl(ctx):
182185
SphinxSourcesInfo(
183186
srcs = all_rst_srcs,
184187
deps = all_rst_deps,
188+
ancillary = depset(transitive = rst_ancillary_transitive),
185189
),
186190
]
187191

0 commit comments

Comments
 (0)