Merge "Convert Soong licenses attribute to Bazel's applicable_licenses attribute"

This commit is contained in:
Treehugger Robot 2022-09-28 00:09:04 +00:00 committed by Gerrit Code Review
commit 929dc2bd5a
2 changed files with 31 additions and 0 deletions

View file

@ -919,6 +919,8 @@ type CommonAttributes struct {
Data bazel.LabelListAttribute
Tags bazel.StringListAttribute
Applicable_licenses bazel.LabelListAttribute
}
// constraintAttributes represents Bazel attributes pertaining to build constraints,
@ -1231,6 +1233,8 @@ func (attrs *CommonAttributes) fillCommonBp2BuildModuleAttrs(ctx *topDownMutator
}
}
attrs.Applicable_licenses = bazel.MakeLabelListAttribute(BazelLabelForModuleDeps(ctx, mod.commonProperties.Licenses))
// The required property can contain the module itself. This causes a cycle
// when generated as the 'data' label list attribute in Bazel. Remove it if
// it exists. See b/247985196.

View file

@ -1821,3 +1821,30 @@ filegroup {
})
}
}
func TestLicensesAttrConversion(t *testing.T) {
RunBp2BuildTestCase(t,
func(ctx android.RegistrationContext) {
ctx.RegisterModuleType("license", android.LicenseFactory)
},
Bp2buildTestCase{
Description: "Test that licenses: attribute is converted",
ModuleTypeUnderTest: "filegroup",
ModuleTypeUnderTestFactory: android.FileGroupFactory,
Blueprint: `
license {
name: "my_license",
}
filegroup {
name: "my_filegroup",
licenses: ["my_license"],
}
`,
ExpectedBazelTargets: []string{
MakeBazelTargetNoRestrictions("filegroup", "my_filegroup", AttrNameToString{
"applicable_licenses": `[":my_license"]`,
}),
MakeBazelTargetNoRestrictions("android_license", "my_license", AttrNameToString{}),
},
})
}