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,
}
diff --git a/cc/library.go b/cc/library.go
index 9114f14..de9d01e 100644
--- a/cc/library.go
+++ b/cc/library.go
@@ -248,6 +248,7 @@
Linkopts bazel.StringListAttribute
Use_libcrt bazel.BoolAttribute
Rtti bazel.BoolAttribute
+ Stl *string
// This is shared only.
Version_script bazel.LabelAttribute
@@ -322,6 +323,7 @@
Linkopts: linkerAttrs.linkopts,
Use_libcrt: linkerAttrs.useLibcrt,
Rtti: compilerAttrs.rtti,
+ Stl: compilerAttrs.stl,
Version_script: linkerAttrs.versionScript,
@@ -2388,6 +2390,7 @@
Linkopts: linkerAttrs.linkopts,
Use_libcrt: linkerAttrs.useLibcrt,
Rtti: compilerAttrs.rtti,
+ Stl: compilerAttrs.stl,
Export_includes: exportedIncludes.Includes,
Export_system_includes: exportedIncludes.SystemIncludes,
Local_includes: compilerAttrs.localIncludes,
@@ -2408,6 +2411,7 @@
Use_libcrt: linkerAttrs.useLibcrt,
Rtti: compilerAttrs.rtti,
+ Stl: compilerAttrs.stl,
Export_includes: exportedIncludes.Includes,
Export_system_includes: exportedIncludes.SystemIncludes,
@@ -2440,6 +2444,7 @@
Linkopts bazel.StringListAttribute
Use_libcrt bazel.BoolAttribute
Rtti bazel.BoolAttribute
+ Stl *string
Export_includes bazel.StringListAttribute
Export_system_includes bazel.StringListAttribute
@@ -2463,6 +2468,7 @@
Linkopts bazel.StringListAttribute
Use_libcrt bazel.BoolAttribute
Rtti bazel.BoolAttribute
+ Stl *string
Export_includes bazel.StringListAttribute
Export_system_includes bazel.StringListAttribute