Merge changes Ia106d48e,Ib6c0e778
* changes: Remove use of deprecated ExtractSourcesDeps Dedup path properties across property structs
This commit is contained in:
@@ -35,16 +35,17 @@ func pathDepsMutator(ctx BottomUpMutatorContext) {
|
|||||||
|
|
||||||
props := m.base().generalProperties
|
props := m.base().generalProperties
|
||||||
|
|
||||||
|
var pathProperties []string
|
||||||
for _, ps := range props {
|
for _, ps := range props {
|
||||||
pathProperties := pathPropertiesForPropertyStruct(ctx, ps)
|
pathProperties = append(pathProperties, pathPropertiesForPropertyStruct(ctx, ps)...)
|
||||||
pathProperties = FirstUniqueStrings(pathProperties)
|
}
|
||||||
|
|
||||||
for _, s := range pathProperties {
|
pathProperties = FirstUniqueStrings(pathProperties)
|
||||||
if m, t := SrcIsModuleWithTag(s); m != "" {
|
|
||||||
ctx.AddDependency(ctx.Module(), sourceOrOutputDepTag(t), m)
|
for _, s := range pathProperties {
|
||||||
}
|
if m, t := SrcIsModuleWithTag(s); m != "" {
|
||||||
|
ctx.AddDependency(ctx.Module(), sourceOrOutputDepTag(t), m)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -28,12 +28,17 @@ type pathDepsMutatorTestModule struct {
|
|||||||
Qux string
|
Qux string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A second property struct with a duplicate property name
|
||||||
|
props2 struct {
|
||||||
|
Foo string `android:"path"`
|
||||||
|
}
|
||||||
|
|
||||||
sourceDeps []string
|
sourceDeps []string
|
||||||
}
|
}
|
||||||
|
|
||||||
func pathDepsMutatorTestModuleFactory() Module {
|
func pathDepsMutatorTestModuleFactory() Module {
|
||||||
module := &pathDepsMutatorTestModule{}
|
module := &pathDepsMutatorTestModule{}
|
||||||
module.AddProperties(&module.props)
|
module.AddProperties(&module.props, &module.props2)
|
||||||
InitAndroidArchModule(module, DeviceSupported, MultilibBoth)
|
InitAndroidArchModule(module, DeviceSupported, MultilibBoth)
|
||||||
return module
|
return module
|
||||||
}
|
}
|
||||||
@@ -44,6 +49,13 @@ func (p *pathDepsMutatorTestModule) GenerateAndroidBuildActions(ctx ModuleContex
|
|||||||
p.sourceDeps = append(p.sourceDeps, ctx.OtherModuleName(dep))
|
p.sourceDeps = append(p.sourceDeps, ctx.OtherModuleName(dep))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if p.props.Foo != "" {
|
||||||
|
// Make sure there is only one dependency on a module listed in a property present in multiple property structs
|
||||||
|
if ctx.GetDirectDepWithTag(SrcIsModule(p.props.Foo), sourceOrOutputDepTag("")) == nil {
|
||||||
|
ctx.ModuleErrorf("GetDirectDepWithTag failed")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPathDepsMutator(t *testing.T) {
|
func TestPathDepsMutator(t *testing.T) {
|
||||||
|
@@ -2040,7 +2040,7 @@ func ImportFactoryHost() android.Module {
|
|||||||
// dex_import module
|
// dex_import module
|
||||||
|
|
||||||
type DexImportProperties struct {
|
type DexImportProperties struct {
|
||||||
Jars []string
|
Jars []string `android:"path"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type DexImport struct {
|
type DexImport struct {
|
||||||
@@ -2068,10 +2068,6 @@ func (j *DexImport) Name() string {
|
|||||||
return j.prebuilt.Name(j.ModuleBase.Name())
|
return j.prebuilt.Name(j.ModuleBase.Name())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (j *DexImport) DepsMutator(ctx android.BottomUpMutatorContext) {
|
|
||||||
android.ExtractSourcesDeps(ctx, j.properties.Jars)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (j *DexImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
func (j *DexImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||||
if len(j.properties.Jars) != 1 {
|
if len(j.properties.Jars) != 1 {
|
||||||
ctx.PropertyErrorf("jars", "exactly one jar must be provided")
|
ctx.PropertyErrorf("jars", "exactly one jar must be provided")
|
||||||
|
Reference in New Issue
Block a user