@@ -30,7 +30,7 @@ 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_aux_list , lobster_files ):
3434 """Collect analysis providers from a single sub-analysis target.
3535
3636 Updates the provided lists/dicts in-place.
@@ -39,12 +39,15 @@ def _collect_analysis_providers(sa, rst_srcs_list, rst_deps_list, lobster_files)
3939 sa: A sub-analysis target (fmea or security).
4040 rst_srcs_list: List of depsets to extend with SphinxSourcesInfo.srcs.
4141 rst_deps_list: List of depsets to extend with SphinxSourcesInfo.deps.
42+ rst_aux_list: List of depsets to extend with SphinxSourcesInfo.aux_srcs.
4243 lobster_files: Dict to update with AnalysisInfo.lobster_files
4344 (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+ if sa [SphinxSourcesInfo ].aux_srcs :
50+ rst_aux_list .append (sa [SphinxSourcesInfo ].aux_srcs )
4851 if AnalysisInfo in sa :
4952 lobster_files .update (sa [AnalysisInfo ].lobster_files )
5053
@@ -74,6 +77,7 @@ def _dependability_analysis_impl(ctx):
7477
7578 rst_srcs_transitive = [dfa_rst_files ]
7679 rst_deps_transitive = [dfa_rst_files ]
80+ rst_aux_transitive = []
7781 lobster_files = {} # canonical name → File, merged from all sub-analyses
7882
7983 # -------------------------------------------------------------------------
@@ -82,22 +86,23 @@ def _dependability_analysis_impl(ctx):
8286 fmea_output_files = []
8387 for sa in ctx .attr .fmea :
8488 fmea_output_files .append (sa [DefaultInfo ].files )
85- _collect_analysis_providers (sa , rst_srcs_transitive , rst_deps_transitive , lobster_files )
89+ _collect_analysis_providers (sa , rst_srcs_transitive , rst_deps_transitive , rst_aux_transitive , lobster_files )
8690
8791 # -------------------------------------------------------------------------
8892 # Collect from security_analysis targets
8993 # -------------------------------------------------------------------------
9094 security_output_files = []
9195 for sa in ctx .attr .security_analysis :
9296 security_output_files .append (sa [DefaultInfo ].files )
93- _collect_analysis_providers (sa , rst_srcs_transitive , rst_deps_transitive , lobster_files )
97+ _collect_analysis_providers (sa , rst_srcs_transitive , rst_deps_transitive , rst_aux_transitive , lobster_files )
9498
95- # Architectural design sphinx deps (optional)
96- if ctx . attr . arch_design and SphinxSourcesInfo in ctx . attr . arch_design :
97- rst_deps_transitive . append ( ctx . attr . arch_design [ SphinxSourcesInfo ]. deps )
99+ # arch_design files are handled separately by dependable_element via its
100+ # architectural_design attribute, so they are not included in this rule's
101+ # sphinx deps to avoid orphan warnings.
98102
99103 all_rst_srcs = depset (transitive = rst_srcs_transitive )
100104 all_rst_deps = depset (transitive = rst_deps_transitive )
105+ all_rst_aux = depset (transitive = rst_aux_transitive ) if rst_aux_transitive else depset ()
101106
102107 # =========================================================================
103108 # Lobster traceability report (combined FM + CM + FTA)
@@ -182,6 +187,7 @@ def _dependability_analysis_impl(ctx):
182187 SphinxSourcesInfo (
183188 srcs = all_rst_srcs ,
184189 deps = all_rst_deps ,
190+ aux_srcs = all_rst_aux ,
185191 ),
186192 ]
187193
0 commit comments