Make prebuilt properties customizable

Previously whether prebuilt properties were customizable was dependent
on the order of calling various inits.

Test: go test soong tests
Bug: 191975220
Change-Id: Icaa1fe811a5f5fc4aa5fc9fa0ec0b90debe3d537
Merged-In: Icaa1fe811a5f5fc4aa5fc9fa0ec0b90debe3d537
(cherry picked from commit 69d6413dd0a0dad94335a4b0c8e9eef5c9383b70)
This commit is contained in:
Liz Kammer 2021-06-24 13:03:06 -04:00 committed by Dario Freni
parent ffc9ae993a
commit b12c1404cd
2 changed files with 36 additions and 0 deletions

View File

@ -166,6 +166,7 @@ type PrebuiltSrcsSupplier func(ctx BaseModuleContext, prebuilt Module) []string
func InitPrebuiltModuleWithSrcSupplier(module PrebuiltInterface, srcsSupplier PrebuiltSrcsSupplier, srcsPropertyName string) {
p := module.Prebuilt()
module.AddProperties(&p.properties)
module.base().customizableProperties = module.GetProperties()
if srcsSupplier == nil {
panic(fmt.Errorf("srcsSupplier must not be nil"))

View File

@ -259,6 +259,38 @@ var prebuiltsTests = []struct {
}`,
prebuilt: []OsType{Android, BuildOs},
},
{
name: "prebuilt properties customizable",
replaceBp: true,
modules: `
source {
name: "foo",
deps: [":bar"],
}
soong_config_module_type {
name: "prebuilt_with_config",
module_type: "prebuilt",
config_namespace: "any_namespace",
bool_variables: ["bool_var"],
properties: ["prefer"],
}
prebuilt_with_config {
name: "bar",
prefer: true,
srcs: ["prebuilt_file"],
soong_config_variables: {
bool_var: {
prefer: false,
conditions_default: {
prefer: true,
},
},
},
}`,
prebuilt: []OsType{Android, BuildOs},
},
}
func TestPrebuilts(t *testing.T) {
@ -394,6 +426,9 @@ func registerTestPrebuiltModules(ctx RegistrationContext) {
ctx.RegisterModuleType("prebuilt", newPrebuiltModule)
ctx.RegisterModuleType("source", newSourceModule)
ctx.RegisterModuleType("override_source", newOverrideSourceModule)
ctx.RegisterModuleType("soong_config_module_type", soongConfigModuleTypeFactory)
ctx.RegisterModuleType("soong_config_string_variable", soongConfigStringVariableDummyFactory)
ctx.RegisterModuleType("soong_config_bool_variable", soongConfigBoolVariableDummyFactory)
}
type prebuiltModule struct {