diff options
Diffstat (limited to 'android/config.go')
-rw-r--r-- | android/config.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/android/config.go b/android/config.go index 6463f877..b89ae488 100644 --- a/android/config.go +++ b/android/config.go @@ -65,6 +65,20 @@ type DeviceConfig struct { *deviceConfig } +type VendorConfig interface { + // Bool interprets the variable named `name` as a boolean, returning true if, after + // lowercasing, it matches one of "1", "y", "yes", "on", or "true". Unset, or any other + // value will return false. + Bool(name string) bool + + // String returns the string value of `name`. If the variable was not set, it will + // return the empty string. + String(name string) string + + // IsSet returns whether the variable `name` was set by Make. + IsSet(name string) bool +} + type config struct { FileConfigurableOptions productVariables productVariables @@ -107,6 +121,8 @@ type deviceConfig struct { OncePer } +type vendorConfig map[string]string + type jsonConfigurable interface { SetDefaultConfig() } @@ -788,6 +804,24 @@ func (c *config) CFIEnabledForPath(path string) bool { return PrefixInList(path, *c.productVariables.CFIIncludePaths) } +func (c *config) VendorConfig(name string) VendorConfig { + return vendorConfig(c.productVariables.VendorVars[name]) +} + +func (c vendorConfig) Bool(name string) bool { + v := strings.ToLower(c[name]) + return v == "1" || v == "y" || v == "yes" || v == "on" || v == "true" +} + +func (c vendorConfig) String(name string) string { + return c[name] +} + +func (c vendorConfig) IsSet(name string) bool { + _, ok := c[name] + return ok +} + func stringSlice(s *[]string) []string { if s != nil { return *s |