| # Copyright 2026 The Chromium Authors. All rights reserved. | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| FilegroupInfo = provider(fields = ["files"]) | |
| def _filegroup_impl(ctx): | |
| files = depset(ctx.files.srcs) | |
| return [ | |
| DefaultInfo(files = files), | |
| FilegroupInfo(files = files), | |
| ] | |
| filegroup = rule( | |
| implementation = _filegroup_impl, | |
| attrs = { | |
| "srcs": attr.label_list(allow_files = True), | |
| } | |
| ) | |
| def _filegroups_impl(ctx): | |
| filegroups = [fg[FilegroupInfo].files for fg in ctx.attr.filegroups] | |
| return [DefaultInfo(files = depset(transitive = filegroups))] | |
| filegroups = rule( | |
| implementation = _filegroups_impl, | |
| attrs = { | |
| "filegroups": attr.label_list(allow_files = True), | |
| } | |
| ) |