diff options
author | 2024-12-17 21:15:59 +0900 | |
---|---|---|
committer | 2025-03-18 16:11:05 +0900 | |
commit | be6f81d61e25753eeecdb65bdf7dd2bb6d4c1a5c (patch) | |
tree | 8e289a62ad2dab9cbaec0aab99bdc3143b0ff47e /android/module.go | |
parent | 247c22ac8648faeb7129c6eb778eb51a06da5f10 (diff) |
Generic configuration for generic system modules.
Config object includes a copy of itself for the generic configuration.
The generic configuration replaces any product-specific configurations
with the generic information.
When a module context gets Config() object, it returns the generic
configuration if the module sets use_generic_config to true. Otherwise,
Config() returns the original config object as before.
By adding `generic:"<value>"` annotation to the product variable, the
variables will be initialized with the <value> for the generic configs.
If the <value> is "unset", the variable will be unset.
The generic modules can be included in the shared system image to be
installed in multiple targets.
Bug: 361816274
Test: m nothing --no-skip-soong-tests
Change-Id: I15e4ade17ad1a8969f8e0e91d994b60545dc412f
Diffstat (limited to 'android/module.go')
-rw-r--r-- | android/module.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/android/module.go b/android/module.go index a3fe837a5..87377cc75 100644 --- a/android/module.go +++ b/android/module.go @@ -128,6 +128,9 @@ type Module interface { // WARNING: This should not be used outside build/soong/fsgen // Overrides returns the list of modules which should not be installed if this module is installed. Overrides() []string + + // If this is true, the module must not read product-specific configurations. + UseGenericConfig() bool } // Qualified id for a module @@ -507,6 +510,10 @@ type commonProperties struct { // List of module names that are prevented from being installed when this module gets // installed. Overrides []string + + // Set to true if this module must be generic and does not require product-specific information. + // To be included in the system image, this property must be set to true. + Use_generic_config *bool } // Properties common to all modules inheriting from ModuleBase. Unlike commonProperties, these @@ -2588,6 +2595,10 @@ func (m *ModuleBase) Overrides() []string { return m.commonProperties.Overrides } +func (m *ModuleBase) UseGenericConfig() bool { + return proptools.Bool(m.commonProperties.Use_generic_config) +} + type ConfigContext interface { Config() Config } |