Add team property to all modules.

This allows vendors (like google) to specify which team owns the test
module and code.

Team is a commonProperty on modules and points to the designate "team"
module.  The DepsMutator adds the dependency on the "team" module and
"GenerateBuildActions" write the team data to intermediate files.

A new singleton rule, all_teams visits all modules and writes out
the proto containing the team for each module.
If a module doesn't have a team, then it finds the package in the
blueprint file and parent directory blueprint files that have a
default_team and uses that team.

Test: m all_teams
Test: go test ./python ./java ./cc ./rust ./android
Test: added team to HelloWorldHostTest and built the new asciiproto target
Test: added package default_team and checkout output proto.
Change-Id: I5c07bf489de460a04fc540f5fff0394f39f574a7
This commit is contained in:
Ronald Braunstein
2023-12-19 10:24:47 -08:00
parent ee18a66643
commit 73b08ffd0d
13 changed files with 878 additions and 0 deletions

View File

@@ -35,6 +35,7 @@ type packageProperties struct {
Default_visibility []string
// Specifies the default license terms for all modules defined in this package.
Default_applicable_licenses []string
Default_team *string `android:"path"`
}
type packageModule struct {
@@ -47,6 +48,13 @@ func (p *packageModule) GenerateAndroidBuildActions(ModuleContext) {
// Nothing to do.
}
func (p *packageModule) DepsMutator(ctx BottomUpMutatorContext) {
// Add the dependency to do a validity check
if p.properties.Default_team != nil {
ctx.AddDependency(ctx.Module(), nil, *p.properties.Default_team)
}
}
func (p *packageModule) GenerateBuildActions(ctx blueprint.ModuleContext) {
// Nothing to do.
}