Use LoadHook to create modules in java_sdk_library
Creating new modules in a mutator is dangerous, as other mutators that need to see the new modules may already have run, in this case the prebuilts mutator. Move SdkLibraryMutator to a LoadHook instead. Also moves registering the LoadHook mutator to testing.go so it is registered for all tests. Test: m checkbuild Change-Id: I08bd76a0e6205d2ca27861058067a1562c339eed
This commit is contained in:
@@ -123,6 +123,10 @@ type hooks struct {
|
||||
install []func(InstallHookContext)
|
||||
}
|
||||
|
||||
func registerLoadHookMutator(ctx RegisterMutatorsContext) {
|
||||
ctx.TopDown("load_hooks", LoadHookMutator).Parallel()
|
||||
}
|
||||
|
||||
func LoadHookMutator(ctx TopDownMutatorContext) {
|
||||
if m, ok := ctx.Module().(Module); ok {
|
||||
// Cast through *androidTopDownMutatorContext because AppendProperties is implemented
|
||||
|
@@ -73,9 +73,7 @@ type RegisterMutatorsContext interface {
|
||||
type RegisterMutatorFunc func(RegisterMutatorsContext)
|
||||
|
||||
var preArch = []RegisterMutatorFunc{
|
||||
func(ctx RegisterMutatorsContext) {
|
||||
ctx.TopDown("load_hooks", LoadHookMutator).Parallel()
|
||||
},
|
||||
registerLoadHookMutator,
|
||||
RegisterNamespaceMutator,
|
||||
RegisterPrebuiltsPreArchMutators,
|
||||
RegisterDefaultsPreArchMutators,
|
||||
|
@@ -37,6 +37,8 @@ func NewTestContext() *TestContext {
|
||||
|
||||
ctx.SetNameInterface(nameResolver)
|
||||
|
||||
ctx.preArch = append(ctx.preArch, registerLoadHookMutator)
|
||||
|
||||
ctx.postDeps = append(ctx.postDeps, registerPathDepsMutator)
|
||||
|
||||
return ctx
|
||||
|
Reference in New Issue
Block a user