Add stl property support for bp2build
Test: mixed_libc
Test: USE_BAZEL_ANALYSIS=1 m libbase
Change-Id: If56d4a728de3ae4022cc9dadadc9bf8b952f9eaf
diff --git a/cc/bp2build.go b/cc/bp2build.go
index 1b38a75..e3b164d 100644
--- a/cc/bp2build.go
+++ b/cc/bp2build.go
@@ -254,6 +254,7 @@
srcs bazel.LabelListAttribute
rtti bazel.BoolAttribute
+ stl *string
localIncludes bazel.StringListAttribute
absoluteIncludes bazel.StringListAttribute
@@ -349,6 +350,24 @@
srcs, cSrcs, asSrcs := groupSrcsByExtension(ctx, srcs)
+ var stl *string = nil
+ stlPropsByArch := module.GetArchVariantProperties(ctx, &StlProperties{})
+ for _, configToProps := range stlPropsByArch {
+ for _, props := range configToProps {
+ if stlProps, ok := props.(*StlProperties); ok {
+ if stlProps.Stl != nil {
+ if stl == nil {
+ stl = stlProps.Stl
+ } else {
+ if stl != stlProps.Stl {
+ ctx.ModuleErrorf("Unsupported conversion: module with different stl for different variants: %s and %s", *stl, stlProps.Stl)
+ }
+ }
+ }
+ }
+ }
+ }
+
return compilerAttributes{
copts: copts,
srcs: srcs,
@@ -358,6 +377,7 @@
conlyFlags: conlyFlags,
cppFlags: cppFlags,
rtti: rtti,
+ stl: stl,
localIncludes: localIncludes,
absoluteIncludes: absoluteIncludes,
}