Merge "Don't panic for unhandled product vars" into main
This commit is contained in:
@@ -675,7 +675,8 @@ type ProductConfigProperties map[string]map[ProductConfigOrSoongConfigProperty]i
|
||||
|
||||
// ProductVariableProperties returns a ProductConfigProperties containing only the properties which
|
||||
// have been set for the given module.
|
||||
func ProductVariableProperties(ctx ArchVariantContext, module Module) ProductConfigProperties {
|
||||
func ProductVariableProperties(ctx ArchVariantContext, module Module) (ProductConfigProperties, []error) {
|
||||
var errs []error
|
||||
moduleBase := module.base()
|
||||
|
||||
productConfigProperties := ProductConfigProperties{}
|
||||
@@ -699,12 +700,15 @@ func ProductVariableProperties(ctx ArchVariantContext, module Module) ProductCon
|
||||
for namespace, namespacedVariableProps := range m.namespacedVariableProps() {
|
||||
for _, namespacedVariableProp := range namespacedVariableProps {
|
||||
variableValues := reflect.ValueOf(namespacedVariableProp).Elem().FieldByName(soongconfig.SoongConfigProperty)
|
||||
productConfigProperties.AddSoongConfigProperties(namespace, variableValues)
|
||||
err := productConfigProperties.AddSoongConfigProperties(namespace, variableValues)
|
||||
if err != nil {
|
||||
errs = append(errs, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return productConfigProperties
|
||||
return productConfigProperties, errs
|
||||
}
|
||||
|
||||
func (p *ProductConfigProperties) AddProductConfigProperty(
|
||||
@@ -826,7 +830,7 @@ func (productConfigProperties *ProductConfigProperties) AddProductConfigProperti
|
||||
|
||||
}
|
||||
|
||||
func (productConfigProperties *ProductConfigProperties) AddSoongConfigProperties(namespace string, soongConfigVariablesStruct reflect.Value) {
|
||||
func (productConfigProperties *ProductConfigProperties) AddSoongConfigProperties(namespace string, soongConfigVariablesStruct reflect.Value) error {
|
||||
//
|
||||
// Example of soong_config_variables:
|
||||
//
|
||||
@@ -923,7 +927,7 @@ func (productConfigProperties *ProductConfigProperties) AddSoongConfigProperties
|
||||
if propertyName == "Target" {
|
||||
productConfigProperties.AddSoongConfigPropertiesFromTargetStruct(namespace, variableName, proptools.PropertyNameForField(propertyOrValueName), field.Field(k))
|
||||
} else if propertyName == "Arch" || propertyName == "Multilib" {
|
||||
panic("Arch/Multilib are not currently supported in soong config variable structs")
|
||||
return fmt.Errorf("Arch/Multilib are not currently supported in soong config variable structs")
|
||||
} else {
|
||||
productConfigProperties.AddSoongConfigProperty(propertyName, namespace, variableName, proptools.PropertyNameForField(propertyOrValueName), "", field.Field(k).Interface())
|
||||
}
|
||||
@@ -934,13 +938,14 @@ func (productConfigProperties *ProductConfigProperties) AddSoongConfigProperties
|
||||
if propertyOrValueName == "Target" {
|
||||
productConfigProperties.AddSoongConfigPropertiesFromTargetStruct(namespace, variableName, "", propertyOrStruct)
|
||||
} else if propertyOrValueName == "Arch" || propertyOrValueName == "Multilib" {
|
||||
panic("Arch/Multilib are not currently supported in soong config variable structs")
|
||||
return fmt.Errorf("Arch/Multilib are not currently supported in soong config variable structs")
|
||||
} else {
|
||||
productConfigProperties.AddSoongConfigProperty(propertyOrValueName, namespace, variableName, "", "", propertyOrStruct.Interface())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (productConfigProperties *ProductConfigProperties) AddSoongConfigPropertiesFromTargetStruct(namespace, soongConfigVariableName string, soongConfigVariableValue string, targetStruct reflect.Value) {
|
||||
|
Reference in New Issue
Block a user