Merge "Don't add dependencies on modules referenced in unused arch variants"

am: 1f74135f97

Change-Id: Id27103a3513985e325fca47215ca85b77aaf8c52
This commit is contained in:
Colin Cross 2019-03-19 01:17:57 -07:00 committed by android-build-merger
commit 577ef51ca7
3 changed files with 24 additions and 6 deletions

View file

@ -383,6 +383,7 @@ func InitAndroidModule(m Module) {
&base.nameProperties, &base.nameProperties,
&base.commonProperties, &base.commonProperties,
&base.variableProperties) &base.variableProperties)
base.generalProperties = m.GetProperties()
base.customizableProperties = m.GetProperties() base.customizableProperties = m.GetProperties()
} }

View file

@ -33,7 +33,7 @@ func pathDepsMutator(ctx BottomUpMutatorContext) {
return return
} }
props := m.base().customizableProperties props := m.base().generalProperties
for _, ps := range props { for _, ps := range props {
pathProperties := pathPropertiesForPropertyStruct(ctx, ps) pathProperties := pathPropertiesForPropertyStruct(ctx, ps)

View file

@ -25,7 +25,7 @@ type pathDepsMutatorTestModule struct {
ModuleBase ModuleBase
props struct { props struct {
Foo string `android:"path"` Foo string `android:"path"`
Bar []string `android:"path"` Bar []string `android:"path,arch_variant"`
Baz *string `android:"path"` Baz *string `android:"path"`
Qux string Qux string
} }
@ -36,7 +36,7 @@ type pathDepsMutatorTestModule struct {
func pathDepsMutatorTestModuleFactory() Module { func pathDepsMutatorTestModuleFactory() Module {
module := &pathDepsMutatorTestModule{} module := &pathDepsMutatorTestModule{}
module.AddProperties(&module.props) module.AddProperties(&module.props)
InitAndroidModule(module) InitAndroidArchModule(module, DeviceSupported, MultilibBoth)
return module return module
} }
@ -64,6 +64,23 @@ func TestPathDepsMutator(t *testing.T) {
}`, }`,
deps: []string{"a", "b", "c"}, deps: []string{"a", "b", "c"},
}, },
{
name: "arch variant",
bp: `
test {
name: "foo",
arch: {
arm64: {
bar: [":a"],
},
arm: {
bar: [":b"],
},
},
bar: [":c"],
}`,
deps: []string{"c", "a"},
},
} }
buildDir, err := ioutil.TempDir("", "soong_path_properties_test") buildDir, err := ioutil.TempDir("", "soong_path_properties_test")
@ -74,8 +91,8 @@ func TestPathDepsMutator(t *testing.T) {
for _, test := range tests { for _, test := range tests {
t.Run(test.name, func(t *testing.T) { t.Run(test.name, func(t *testing.T) {
config := TestConfig(buildDir, nil) config := TestArchConfig(buildDir, nil)
ctx := NewTestContext() ctx := NewTestArchContext()
ctx.RegisterModuleType("test", ModuleFactoryAdaptor(pathDepsMutatorTestModuleFactory)) ctx.RegisterModuleType("test", ModuleFactoryAdaptor(pathDepsMutatorTestModuleFactory))
ctx.RegisterModuleType("filegroup", ModuleFactoryAdaptor(FileGroupFactory)) ctx.RegisterModuleType("filegroup", ModuleFactoryAdaptor(FileGroupFactory))
@ -110,7 +127,7 @@ func TestPathDepsMutator(t *testing.T) {
_, errs = ctx.PrepareBuildActions(config) _, errs = ctx.PrepareBuildActions(config)
FailIfErrored(t, errs) FailIfErrored(t, errs)
m := ctx.ModuleForTests("foo", "").Module().(*pathDepsMutatorTestModule) m := ctx.ModuleForTests("foo", "android_arm64_armv8-a").Module().(*pathDepsMutatorTestModule)
if g, w := m.sourceDeps, test.deps; !reflect.DeepEqual(g, w) { if g, w := m.sourceDeps, test.deps; !reflect.DeepEqual(g, w) {
t.Errorf("want deps %q, got %q", w, g) t.Errorf("want deps %q, got %q", w, g)