Introduce BazelStringOrLabelFromProp.
Soong supports string properties, but they are overloaded, and can mean one of three things: * path reference * module reference * string literal Bazel has different types: label and string attributes. Thus there needs to be a way to categorize them correctly in bp2build. This CL introduces a new function to be used on properties like apex_key.private_key / apex_key.public_key, as well as android_app.certificate / apex.certificate. It is important to disambiguate the prop betenn a string literal attribute or file/rule target label attribute, so this functions does just that. The new attributes are then further handled by their respective macros (apex_key, android_binary, apex). Bug: 253557437 Fixes: 253557437 Test: presubmits, new tests Change-Id: Id8111cdd60d3aabcae7d17fe9da84d0ee3966023
This commit is contained in:
28
apex/key.go
28
apex/key.go
@@ -201,10 +201,10 @@ func (s *apexKeysText) MakeVars(ctx android.MakeVarsContext) {
|
||||
|
||||
type bazelApexKeyAttributes struct {
|
||||
Public_key bazel.LabelAttribute
|
||||
Public_key_name bazel.LabelAttribute
|
||||
Public_key_name bazel.StringAttribute
|
||||
|
||||
Private_key bazel.LabelAttribute
|
||||
Private_key_name bazel.LabelAttribute
|
||||
Private_key_name bazel.StringAttribute
|
||||
}
|
||||
|
||||
// ConvertWithBp2build performs conversion apexKey for bp2build
|
||||
@@ -213,27 +213,11 @@ func (m *apexKey) ConvertWithBp2build(ctx android.TopDownMutatorContext) {
|
||||
}
|
||||
|
||||
func apexKeyBp2BuildInternal(ctx android.TopDownMutatorContext, module *apexKey) {
|
||||
var privateKeyLabelAttribute bazel.LabelAttribute
|
||||
var privateKeyNameAttribute bazel.LabelAttribute
|
||||
if module.properties.Private_key != nil {
|
||||
m := String(module.properties.Private_key)
|
||||
if android.SrcIsModule(m) == "" {
|
||||
privateKeyNameAttribute.SetValue(android.BazelLabelForModuleSrcSingle(ctx, *module.properties.Private_key))
|
||||
} else {
|
||||
privateKeyLabelAttribute.SetValue(android.BazelLabelForModuleDepSingle(ctx, *module.properties.Private_key))
|
||||
}
|
||||
}
|
||||
privateKeyLabelAttribute, privateKeyNameAttribute :=
|
||||
android.BazelStringOrLabelFromProp(ctx, module.properties.Private_key)
|
||||
|
||||
var publicKeyLabelAttribute bazel.LabelAttribute
|
||||
var publicKeyNameAttribute bazel.LabelAttribute
|
||||
if module.properties.Public_key != nil {
|
||||
m := String(module.properties.Public_key)
|
||||
if android.SrcIsModule(m) == "" {
|
||||
publicKeyNameAttribute.SetValue(android.BazelLabelForModuleSrcSingle(ctx, *module.properties.Public_key))
|
||||
} else {
|
||||
publicKeyLabelAttribute.SetValue(android.BazelLabelForModuleDepSingle(ctx, *module.properties.Public_key))
|
||||
}
|
||||
}
|
||||
publicKeyLabelAttribute, publicKeyNameAttribute :=
|
||||
android.BazelStringOrLabelFromProp(ctx, module.properties.Public_key)
|
||||
|
||||
attrs := &bazelApexKeyAttributes{
|
||||
Private_key: privateKeyLabelAttribute,
|
||||
|
Reference in New Issue
Block a user