Merge changes Ia106d48e,Ib6c0e778 am: 63f4b57a7f

am: 723cc24f2e

Change-Id: I467f93f44713b548c48a09d7b88f7a538cdd6b0a
This commit is contained in:
Colin Cross 2019-07-16 15:07:58 -07:00 committed by android-build-merger
commit 96e77eece5
3 changed files with 22 additions and 13 deletions

View File

@ -35,16 +35,17 @@ func pathDepsMutator(ctx BottomUpMutatorContext) {
props := m.base().generalProperties
var pathProperties []string
for _, ps := range props {
pathProperties := pathPropertiesForPropertyStruct(ctx, ps)
pathProperties = FirstUniqueStrings(pathProperties)
pathProperties = append(pathProperties, pathPropertiesForPropertyStruct(ctx, ps)...)
}
for _, s := range pathProperties {
if m, t := SrcIsModuleWithTag(s); m != "" {
ctx.AddDependency(ctx.Module(), sourceOrOutputDepTag(t), m)
}
pathProperties = FirstUniqueStrings(pathProperties)
for _, s := range pathProperties {
if m, t := SrcIsModuleWithTag(s); m != "" {
ctx.AddDependency(ctx.Module(), sourceOrOutputDepTag(t), m)
}
}
}

View File

@ -28,12 +28,17 @@ type pathDepsMutatorTestModule struct {
Qux string
}
// A second property struct with a duplicate property name
props2 struct {
Foo string `android:"path"`
}
sourceDeps []string
}
func pathDepsMutatorTestModuleFactory() Module {
module := &pathDepsMutatorTestModule{}
module.AddProperties(&module.props)
module.AddProperties(&module.props, &module.props2)
InitAndroidArchModule(module, DeviceSupported, MultilibBoth)
return module
}
@ -44,6 +49,13 @@ func (p *pathDepsMutatorTestModule) GenerateAndroidBuildActions(ctx ModuleContex
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) {

View File

@ -2040,7 +2040,7 @@ func ImportFactoryHost() android.Module {
// dex_import module
type DexImportProperties struct {
Jars []string
Jars []string `android:"path"`
}
type DexImport struct {
@ -2068,10 +2068,6 @@ func (j *DexImport) Name() string {
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) {
if len(j.properties.Jars) != 1 {
ctx.PropertyErrorf("jars", "exactly one jar must be provided")