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:
@@ -519,6 +519,9 @@ type commonProperties struct {
|
||||
// trace, but influence modules among products.
|
||||
SoongConfigTrace soongConfigTrace `blueprint:"mutated"`
|
||||
SoongConfigTraceHash string `blueprint:"mutated"`
|
||||
|
||||
// The team (defined by the owner/vendor) who owns the property.
|
||||
Team *string `android:"path"`
|
||||
}
|
||||
|
||||
type distProperties struct {
|
||||
@@ -531,6 +534,12 @@ type distProperties struct {
|
||||
Dists []Dist `android:"arch_variant"`
|
||||
}
|
||||
|
||||
type TeamDepTagType struct {
|
||||
blueprint.BaseDependencyTag
|
||||
}
|
||||
|
||||
var teamDepTag = TeamDepTagType{}
|
||||
|
||||
// CommonTestOptions represents the common `test_options` properties in
|
||||
// Android.bp.
|
||||
type CommonTestOptions struct {
|
||||
@@ -992,6 +1001,12 @@ func (m *ModuleBase) ComponentDepsMutator(BottomUpMutatorContext) {}
|
||||
|
||||
func (m *ModuleBase) DepsMutator(BottomUpMutatorContext) {}
|
||||
|
||||
func (m *ModuleBase) baseDepsMutator(ctx BottomUpMutatorContext) {
|
||||
if m.Team() != "" {
|
||||
ctx.AddDependency(ctx.Module(), teamDepTag, m.Team())
|
||||
}
|
||||
}
|
||||
|
||||
// AddProperties "registers" the provided props
|
||||
// each value in props MUST be a pointer to a struct
|
||||
func (m *ModuleBase) AddProperties(props ...interface{}) {
|
||||
@@ -1437,6 +1452,10 @@ func (m *ModuleBase) Owner() string {
|
||||
return String(m.commonProperties.Owner)
|
||||
}
|
||||
|
||||
func (m *ModuleBase) Team() string {
|
||||
return String(m.commonProperties.Team)
|
||||
}
|
||||
|
||||
func (m *ModuleBase) setImageVariation(variant string) {
|
||||
m.commonProperties.ImageVariation = variant
|
||||
}
|
||||
|
Reference in New Issue
Block a user