Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 69d6413d authored by Liz Kammer's avatar Liz Kammer
Browse files

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
parent 789093a9
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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"))
+35 −0
Original line number Diff line number Diff line
@@ -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 {