From 12ff57d61c4dce711d16da45cdd5c3079fed69dd Mon Sep 17 00:00:00 2001 From: Cole Faust Date: Tue, 30 Jul 2024 13:17:28 -0700 Subject: [PATCH] Make the prefer property configurable To replace soong config modules with selects. Bug: 342006386 Test: m nothing --no-skip-soong-tests Change-Id: I56080c9a1647a072836d4e4e50d6a5d2c1a69d28 --- android/configurable_properties.go | 6 ++++++ android/prebuilt.go | 10 +++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/android/configurable_properties.go b/android/configurable_properties.go index dad42fa1d..2c794a186 100644 --- a/android/configurable_properties.go +++ b/android/configurable_properties.go @@ -26,3 +26,9 @@ func CreateSelectOsToBool(cases map[string]*bool) proptools.Configurable[bool] { resultCases, ) } + +func NewSimpleConfigurable[T proptools.ConfigurableElements](value T) proptools.Configurable[T] { + return proptools.NewConfigurable(nil, []proptools.ConfigurableCase[T]{ + proptools.NewConfigurableCase(nil, &value), + }) +} diff --git a/android/prebuilt.go b/android/prebuilt.go index 51b86a56f..8856d2619 100644 --- a/android/prebuilt.go +++ b/android/prebuilt.go @@ -61,7 +61,7 @@ var _ ExcludeFromApexContentsTag = PrebuiltDepTag type UserSuppliedPrebuiltProperties struct { // When prefer is set to true the prebuilt will be used instead of any source module with // a matching name. - Prefer *bool `android:"arch_variant"` + Prefer proptools.Configurable[bool] `android:"arch_variant,replace_instead_of_append"` // When specified this names a Soong config variable that controls the prefer property. // @@ -148,11 +148,7 @@ func PrebuiltNameFromSource(name string) string { } func (p *Prebuilt) ForcePrefer() { - p.properties.Prefer = proptools.BoolPtr(true) -} - -func (p *Prebuilt) Prefer() bool { - return proptools.Bool(p.properties.Prefer) + p.properties.Prefer = NewSimpleConfigurable(true) } // SingleSourcePathFromSupplier invokes the supplied supplier for the current module in the @@ -707,7 +703,7 @@ func (p *Prebuilt) usePrebuilt(ctx BaseMutatorContext, source Module, prebuilt M } // TODO: use p.Properties.Name and ctx.ModuleDir to override preference - return Bool(p.properties.Prefer) + return p.properties.Prefer.GetOrDefault(ctx, false) } func (p *Prebuilt) SourceExists() bool {