Give Blueprint modules access to all namespaces
Don't enforce namespaces on Blueprint modules like bootstrap_go_package, their dependencies are handled before namespaces are initialized in namespaceMutator. Fixes: 135246048 Test: TestDependingOnBlueprintModuleInRootNamespace Change-Id: I7cf1c26bb8512eed59d6b4eb42a49f7080ffa281
This commit is contained in:
parent
e77a57336f
commit
cd84b4e36b
|
@ -222,6 +222,11 @@ func (r *NameResolver) parseFullyQualifiedName(name string) (namespaceName strin
|
|||
}
|
||||
|
||||
func (r *NameResolver) getNamespacesToSearchForModule(sourceNamespace *Namespace) (searchOrder []*Namespace) {
|
||||
if sourceNamespace.visibleNamespaces == nil {
|
||||
// When handling dependencies before namespaceMutator, assume they are non-Soong Blueprint modules and give
|
||||
// access to all namespaces.
|
||||
return r.sortedNamespaces.sortedItems()
|
||||
}
|
||||
return sourceNamespace.visibleNamespaces
|
||||
}
|
||||
|
||||
|
|
|
@ -91,6 +91,28 @@ func TestImplicitlyImportRootNamespace(t *testing.T) {
|
|||
// setupTest will report any errors
|
||||
}
|
||||
|
||||
func TestDependingOnBlueprintModuleInRootNamespace(t *testing.T) {
|
||||
_ = setupTest(t,
|
||||
map[string]string{
|
||||
".": `
|
||||
blueprint_test_module {
|
||||
name: "a",
|
||||
}
|
||||
`,
|
||||
"dir1": `
|
||||
soong_namespace {
|
||||
}
|
||||
blueprint_test_module {
|
||||
name: "b",
|
||||
deps: ["a"],
|
||||
}
|
||||
`,
|
||||
},
|
||||
)
|
||||
|
||||
// setupTest will report any errors
|
||||
}
|
||||
|
||||
func TestDependingOnModuleInImportedNamespace(t *testing.T) {
|
||||
ctx := setupTest(t,
|
||||
map[string]string{
|
||||
|
@ -617,6 +639,7 @@ func setupTestFromFiles(bps map[string][]byte) (ctx *TestContext, errs []error)
|
|||
ctx.MockFileSystem(bps)
|
||||
ctx.RegisterModuleType("test_module", ModuleFactoryAdaptor(newTestModule))
|
||||
ctx.RegisterModuleType("soong_namespace", ModuleFactoryAdaptor(NamespaceFactory))
|
||||
ctx.RegisterModuleType("blueprint_test_module", newBlueprintTestModule)
|
||||
ctx.PreArchMutators(RegisterNamespaceMutator)
|
||||
ctx.PreDepsMutators(func(ctx RegisterMutatorsContext) {
|
||||
ctx.BottomUp("rename", renameMutator)
|
||||
|
@ -641,6 +664,7 @@ func setupTestExpectErrs(bps map[string]string) (ctx *TestContext, errs []error)
|
|||
}
|
||||
|
||||
func setupTest(t *testing.T, bps map[string]string) (ctx *TestContext) {
|
||||
t.Helper()
|
||||
ctx, errs := setupTestExpectErrs(bps)
|
||||
FailIfErrored(t, errs)
|
||||
return ctx
|
||||
|
@ -718,3 +742,22 @@ func newTestModule() Module {
|
|||
InitAndroidModule(m)
|
||||
return m
|
||||
}
|
||||
|
||||
type blueprintTestModule struct {
|
||||
blueprint.SimpleName
|
||||
properties struct {
|
||||
Deps []string
|
||||
}
|
||||
}
|
||||
|
||||
func (b *blueprintTestModule) DynamicDependencies(ctx blueprint.DynamicDependerModuleContext) []string {
|
||||
return b.properties.Deps
|
||||
}
|
||||
|
||||
func (b *blueprintTestModule) GenerateBuildActions(blueprint.ModuleContext) {
|
||||
}
|
||||
|
||||
func newBlueprintTestModule() (blueprint.Module, []interface{}) {
|
||||
m := &blueprintTestModule{}
|
||||
return m, []interface{}{&m.properties, &m.SimpleName.Properties}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue