Handle product vars *flags props in cc* modules

Test: build/bazel/ci/bp2build.sh
Bug: 188497994
Change-Id: Ifb379e370075d6a7bc55b82d79c210c31ef377e9
This commit is contained in:
Liz Kammer
2021-05-26 08:45:30 -04:00
parent f6840284b6
commit ba7a9c5e4a
5 changed files with 56 additions and 33 deletions

View File

@@ -157,8 +157,6 @@ func ObjectBp2Build(ctx android.TopDownMutatorContext) {
// Set arch-specific configurable attributes
compilerAttrs := bp2BuildParseCompilerProps(ctx, m)
var asFlags bazel.StringListAttribute
var deps bazel.LabelListAttribute
for _, props := range m.linker.linkerProps() {
if objectLinkerProps, ok := props.(*ObjectLinkerProperties); ok {
@@ -167,24 +165,6 @@ func ObjectBp2Build(ctx android.TopDownMutatorContext) {
}
}
productVariableProps := android.ProductVariableProperties(ctx)
if props, exists := productVariableProps["Asflags"]; exists {
// TODO(b/183595873): consider deduplicating handling of product variable properties
for _, prop := range props {
flags, ok := prop.Property.([]string)
if !ok {
ctx.ModuleErrorf("Could not convert product variable asflag property")
return
}
newFlags, _ := bazel.TryVariableSubstitutions(flags, prop.ProductConfigVariable)
asFlags.ProductValues = append(asFlags.ProductValues, bazel.ProductVariableValues{
ProductVariable: prop.ProductConfigVariable,
Values: newFlags,
})
}
}
// TODO(b/183595872) warn/error if we're not handling product variables
// Don't split cc_object srcs across languages. Doing so would add complexity,
// and this isn't typically done for cc_object.
srcs := compilerAttrs.srcs
@@ -195,7 +175,7 @@ func ObjectBp2Build(ctx android.TopDownMutatorContext) {
Srcs: srcs,
Deps: deps,
Copts: compilerAttrs.copts,
Asflags: asFlags,
Asflags: compilerAttrs.asFlags,
}
props := bazel.BazelTargetModuleProperties{