Switch Effective_license_text from []string to Paths
Effective_license_text contains paths to files that are copied from one module to another and so need to be converted to Paths within the context of the owning module as the paths are relative to the owning module's directory. The previous code did convert the license_text property to paths but converted it back to strings again which was confusing and does not follow the normal pattern. Bug: 181569894 Test: m nothing Change-Id: Iea09ee7f3de1187a2c3e41455ca83b0233d904b2
This commit is contained in:
parent
df5a90502d
commit
ec0836af3a
|
@ -501,7 +501,7 @@ func (a *AndroidMkEntries) fillInEntries(ctx fillInEntriesContext, mod blueprint
|
||||||
a.SetString("LOCAL_MODULE", name+a.SubName)
|
a.SetString("LOCAL_MODULE", name+a.SubName)
|
||||||
a.AddStrings("LOCAL_LICENSE_KINDS", amod.commonProperties.Effective_license_kinds...)
|
a.AddStrings("LOCAL_LICENSE_KINDS", amod.commonProperties.Effective_license_kinds...)
|
||||||
a.AddStrings("LOCAL_LICENSE_CONDITIONS", amod.commonProperties.Effective_license_conditions...)
|
a.AddStrings("LOCAL_LICENSE_CONDITIONS", amod.commonProperties.Effective_license_conditions...)
|
||||||
a.AddStrings("LOCAL_NOTICE_FILE", amod.commonProperties.Effective_license_text...)
|
a.AddStrings("LOCAL_NOTICE_FILE", amod.commonProperties.Effective_license_text.Strings()...)
|
||||||
// TODO(b/151177513): Does this code need to set LOCAL_MODULE_IS_CONTAINER ?
|
// TODO(b/151177513): Does this code need to set LOCAL_MODULE_IS_CONTAINER ?
|
||||||
if amod.commonProperties.Effective_package_name != nil {
|
if amod.commonProperties.Effective_package_name != nil {
|
||||||
a.SetString("LOCAL_LICENSE_PACKAGE_NAME", *amod.commonProperties.Effective_package_name)
|
a.SetString("LOCAL_LICENSE_PACKAGE_NAME", *amod.commonProperties.Effective_package_name)
|
||||||
|
|
|
@ -62,12 +62,12 @@ func (m *licenseModule) DepsMutator(ctx BottomUpMutatorContext) {
|
||||||
|
|
||||||
func (m *licenseModule) GenerateAndroidBuildActions(ctx ModuleContext) {
|
func (m *licenseModule) GenerateAndroidBuildActions(ctx ModuleContext) {
|
||||||
// license modules have no licenses, but license_kinds must refer to license_kind modules
|
// license modules have no licenses, but license_kinds must refer to license_kind modules
|
||||||
mergeProps(&m.base().commonProperties.Effective_licenses, ctx.ModuleName())
|
mergeStringProps(&m.base().commonProperties.Effective_licenses, ctx.ModuleName())
|
||||||
mergeProps(&m.base().commonProperties.Effective_license_text, PathsForModuleSrc(ctx, m.properties.License_text).Strings()...)
|
mergePathProps(&m.base().commonProperties.Effective_license_text, PathsForModuleSrc(ctx, m.properties.License_text)...)
|
||||||
for _, module := range ctx.GetDirectDepsWithTag(licenseKindTag) {
|
for _, module := range ctx.GetDirectDepsWithTag(licenseKindTag) {
|
||||||
if lk, ok := module.(*licenseKindModule); ok {
|
if lk, ok := module.(*licenseKindModule); ok {
|
||||||
mergeProps(&m.base().commonProperties.Effective_license_conditions, lk.properties.Conditions...)
|
mergeStringProps(&m.base().commonProperties.Effective_license_conditions, lk.properties.Conditions...)
|
||||||
mergeProps(&m.base().commonProperties.Effective_license_kinds, ctx.OtherModuleName(module))
|
mergeStringProps(&m.base().commonProperties.Effective_license_kinds, ctx.OtherModuleName(module))
|
||||||
} else {
|
} else {
|
||||||
ctx.ModuleErrorf("license_kinds property %q is not a license_kind module", ctx.OtherModuleName(module))
|
ctx.ModuleErrorf("license_kinds property %q is not a license_kind module", ctx.OtherModuleName(module))
|
||||||
}
|
}
|
||||||
|
|
|
@ -196,10 +196,10 @@ func licensesPropertyFlattener(ctx ModuleContext) {
|
||||||
if m.base().commonProperties.Effective_package_name == nil && l.properties.Package_name != nil {
|
if m.base().commonProperties.Effective_package_name == nil && l.properties.Package_name != nil {
|
||||||
m.base().commonProperties.Effective_package_name = l.properties.Package_name
|
m.base().commonProperties.Effective_package_name = l.properties.Package_name
|
||||||
}
|
}
|
||||||
mergeProps(&m.base().commonProperties.Effective_licenses, module.base().commonProperties.Effective_licenses...)
|
mergeStringProps(&m.base().commonProperties.Effective_licenses, module.base().commonProperties.Effective_licenses...)
|
||||||
mergeProps(&m.base().commonProperties.Effective_license_text, module.base().commonProperties.Effective_license_text...)
|
mergePathProps(&m.base().commonProperties.Effective_license_text, module.base().commonProperties.Effective_license_text...)
|
||||||
mergeProps(&m.base().commonProperties.Effective_license_kinds, module.base().commonProperties.Effective_license_kinds...)
|
mergeStringProps(&m.base().commonProperties.Effective_license_kinds, module.base().commonProperties.Effective_license_kinds...)
|
||||||
mergeProps(&m.base().commonProperties.Effective_license_conditions, module.base().commonProperties.Effective_license_conditions...)
|
mergeStringProps(&m.base().commonProperties.Effective_license_conditions, module.base().commonProperties.Effective_license_conditions...)
|
||||||
} else {
|
} else {
|
||||||
propertyName := "licenses"
|
propertyName := "licenses"
|
||||||
primaryProperty := m.base().primaryLicensesProperty
|
primaryProperty := m.base().primaryLicensesProperty
|
||||||
|
@ -212,16 +212,15 @@ func licensesPropertyFlattener(ctx ModuleContext) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update a property string array with a distinct union of its values and a list of new values.
|
// Update a property string array with a distinct union of its values and a list of new values.
|
||||||
func mergeProps(prop *[]string, values ...string) {
|
func mergeStringProps(prop *[]string, values ...string) {
|
||||||
s := make(map[string]bool)
|
*prop = append(*prop, values...)
|
||||||
for _, v := range *prop {
|
*prop = SortedUniqueStrings(*prop)
|
||||||
s[v] = true
|
}
|
||||||
}
|
|
||||||
for _, v := range values {
|
// Update a property Path array with a distinct union of its values and a list of new values.
|
||||||
s[v] = true
|
func mergePathProps(prop *Paths, values ...Path) {
|
||||||
}
|
*prop = append(*prop, values...)
|
||||||
*prop = []string{}
|
*prop = SortedUniquePaths(*prop)
|
||||||
*prop = append(*prop, SortedStringKeys(s)...)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the licenses property falling back to the package default.
|
// Get the licenses property falling back to the package default.
|
||||||
|
|
|
@ -658,7 +658,7 @@ func checkEffectiveNotices(t *testing.T, result *TestResult, effectiveNotices ma
|
||||||
if base == nil {
|
if base == nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
actualNotices[m.Name()] = base.commonProperties.Effective_license_text
|
actualNotices[m.Name()] = base.commonProperties.Effective_license_text.Strings()
|
||||||
})
|
})
|
||||||
|
|
||||||
for moduleName, expectedNotices := range effectiveNotices {
|
for moduleName, expectedNotices := range effectiveNotices {
|
||||||
|
|
|
@ -688,7 +688,7 @@ type commonProperties struct {
|
||||||
// Override of module name when reporting licenses
|
// Override of module name when reporting licenses
|
||||||
Effective_package_name *string `blueprint:"mutated"`
|
Effective_package_name *string `blueprint:"mutated"`
|
||||||
// Notice files
|
// Notice files
|
||||||
Effective_license_text []string `blueprint:"mutated"`
|
Effective_license_text Paths `blueprint:"mutated"`
|
||||||
// License names
|
// License names
|
||||||
Effective_license_kinds []string `blueprint:"mutated"`
|
Effective_license_kinds []string `blueprint:"mutated"`
|
||||||
// License conditions
|
// License conditions
|
||||||
|
|
Loading…
Reference in New Issue