diff options
-rw-r--r-- | android/module.go | 2 | ||||
-rw-r--r-- | android/selects_test.go | 48 | ||||
-rw-r--r-- | cc/config/global.go | 3 |
3 files changed, 52 insertions, 1 deletions
diff --git a/android/module.go b/android/module.go index ce995ad77..3bf4f0c9e 100644 --- a/android/module.go +++ b/android/module.go @@ -2450,6 +2450,8 @@ func (e configurationEvalutor) EvaluateConfiguration(condition proptools.Configu return proptools.ConfigurableValueString(v) case "bool": return proptools.ConfigurableValueBool(v == "true") + case "string_list": + return proptools.ConfigurableValueStringList(strings.Split(v, " ")) default: panic("unhandled soong config variable type: " + ty) } diff --git a/android/selects_test.go b/android/selects_test.go index 90d7091e0..1397ed8b7 100644 --- a/android/selects_test.go +++ b/android/selects_test.go @@ -1031,6 +1031,54 @@ my_module_type { my_string_list: &[]string{"d2", "e2", "f2", "a1", "b1", "c1"}, }, }, + { + name: "string list variables", + bp: ` +my_module_type { + name: "foo", + my_string_list: ["a"] + select(soong_config_variable("my_namespace", "my_var"), { + any @ my_var: my_var, + default: [], + }), +} +`, + vendorVars: map[string]map[string]string{ + "my_namespace": { + "my_var": "b c", + }, + }, + vendorVarTypes: map[string]map[string]string{ + "my_namespace": { + "my_var": "string_list", + }, + }, + provider: selectsTestProvider{ + my_string_list: &[]string{"a", "b", "c"}, + }, + }, + { + name: "string list variables don't match string matchers", + bp: ` +my_module_type { + name: "foo", + my_string_list: ["a"] + select(soong_config_variable("my_namespace", "my_var"), { + "foo": ["b"], + default: [], + }), +} +`, + vendorVars: map[string]map[string]string{ + "my_namespace": { + "my_var": "b c", + }, + }, + vendorVarTypes: map[string]map[string]string{ + "my_namespace": { + "my_var": "string_list", + }, + }, + expectedError: `Expected all branches of a select on condition soong_config_variable\("my_namespace", "my_var"\) to have type string_list, found string`, + }, } for _, tc := range testCases { diff --git a/cc/config/global.go b/cc/config/global.go index 6984ea412..27aac959a 100644 --- a/cc/config/global.go +++ b/cc/config/global.go @@ -296,6 +296,7 @@ var ( // Allow using VLA CXX extension. "-Wno-vla-cxx-extension", + "-Wno-cast-function-type-mismatch", } noOverride64GlobalCflags = []string{} @@ -384,7 +385,7 @@ var ( // prebuilts/clang default settings. ClangDefaultBase = "prebuilts/clang/host" - ClangDefaultVersion = "clang-r530567" + ClangDefaultVersion = "clang-r536225" ClangDefaultShortVersion = "19" // Directories with warnings from Android.bp files. |