@@ -219,18 +219,27 @@ def collect_css(deps, orientation = None):
219219 orientation = orientation ,
220220 )
221221
222- def collect_runfiles (targets ):
222+ def collect_runfiles (ctx , files , extra_runfiles_attrs = None ):
223223 """Aggregates data runfiles from targets."""
224- data = []
225- for target in targets :
226- if hasattr (target , "runfiles" ):
227- data .append (target .runfiles .files )
228- continue
229- if hasattr (target , "data_runfiles" ):
230- data .append (target .data_runfiles .files )
231- if hasattr (target , "default_runfiles" ):
232- data .append (target .default_runfiles .files )
233- return depset (transitive = data )
224+ all_transitive_files = []
225+ if extra_runfiles_attrs :
226+ for extra_attr in extra_runfiles_attrs :
227+ deps = getattr (ctx .attr , extra_attr , None ) or []
228+ if type (deps ) != "list" :
229+ deps = [deps ]
230+ for dep in deps :
231+ info = dep [DefaultInfo ]
232+ all_transitive_files .append (info .default_runfiles .files )
233+ all_transitive_files .append (info .data_runfiles .files )
234+
235+ return ctx .runfiles (
236+ collect_default = True ,
237+ collect_data = True ,
238+ files = files ,
239+ transitive_files = depset (
240+ transitive = all_transitive_files ,
241+ ),
242+ )
234243
235244def find_js_module_roots (srcs , workspace_name , label , includes ):
236245 """Finds roots of JavaScript sources.
0 commit comments