From 52d37c32498b56117f93900cd544e7610fe16462 Mon Sep 17 00:00:00 2001 From: Cole Faust Date: Fri, 23 Aug 2024 16:20:58 -0700 Subject: [PATCH] Make the defaults property non-configurable In order to support changing the global configuration per-module, we can't make decisions on configuration until the configuration is decided. The defaults mutator is one of the earliest mutators, and it would be helpful to run it before deciding the configuration. Bug: 361816274 Test: Presubmits Change-Id: Iee9c603d7e2601919d636345dfdedae47448db38 --- android/defaults.go | 8 ++++---- android/module_test.go | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/android/defaults.go b/android/defaults.go index c0a2fc68f..0d51d9d7c 100644 --- a/android/defaults.go +++ b/android/defaults.go @@ -28,7 +28,7 @@ type defaultsDependencyTag struct { var DefaultsDepTag defaultsDependencyTag type defaultsProperties struct { - Defaults proptools.Configurable[[]string] + Defaults []string } type DefaultableModuleBase struct { @@ -278,13 +278,13 @@ func RegisterDefaultsPreArchMutators(ctx RegisterMutatorsContext) { func defaultsDepsMutator(ctx BottomUpMutatorContext) { if defaultable, ok := ctx.Module().(Defaultable); ok { - ctx.AddDependency(ctx.Module(), DefaultsDepTag, defaultable.defaults().Defaults.GetOrDefault(ctx, nil)...) + ctx.AddDependency(ctx.Module(), DefaultsDepTag, defaultable.defaults().Defaults...) } } func defaultsMutator(ctx TopDownMutatorContext) { if defaultable, ok := ctx.Module().(Defaultable); ok { - defaults := defaultable.defaults().Defaults.GetOrDefault(ctx, nil) + defaults := defaultable.defaults().Defaults if len(defaults) > 0 { var defaultsList []Defaults seen := make(map[Defaults]bool) @@ -295,7 +295,7 @@ func defaultsMutator(ctx TopDownMutatorContext) { if !seen[defaults] { seen[defaults] = true defaultsList = append(defaultsList, defaults) - return len(defaults.defaults().Defaults.GetOrDefault(ctx, nil)) > 0 + return len(defaults.defaults().Defaults) > 0 } } else { ctx.PropertyErrorf("defaults", "module %s is not an defaults module", diff --git a/android/module_test.go b/android/module_test.go index 829c07987..016fba353 100644 --- a/android/module_test.go +++ b/android/module_test.go @@ -722,6 +722,7 @@ test { propInfo{Name: "Arch.X86_64.A", Type: "string", Value: "x86_64 a"}, propInfo{Name: "B", Type: "bool", Value: "true"}, propInfo{Name: "C", Type: "string slice", Values: []string{"default_c", "c"}}, + propInfo{Name: "Defaults", Type: "string slice", Values: []string{"foo_defaults"}}, propInfo{Name: "Embedded_prop", Type: "string", Value: "a"}, propInfo{Name: "Name", Type: "string", Value: "foo"}, propInfo{Name: "Nested.E", Type: "string", Value: "nested e"},