Bp2build: handle embedded structs as blueprint
For structs that are embedded, Blueprint does not nest under the
embedded name, flattening them into the original struct for blueprint
files (e.g.
https://cs.android.com/android/_/android/platform/build/blueprint/+/9fd2ed93dfb82baf7688c1b2b29aa4b2cc125721:proptools/unpack_test.go;l=402-431;drc=3adb2409648d6f8b25354ac47f083dae87731f10).
We should do the same for bp2build.
This will also allow us to embed structs for bp2build conversion
allowing more reuse.
Test: go test bp2build tests
Change-Id: I9ce088462adaf59bffa80bea76cd488e31f98e9d
diff --git a/bp2build/build_conversion_test.go b/bp2build/build_conversion_test.go
index ecea6b2..c327112 100644
--- a/bp2build/build_conversion_test.go
+++ b/bp2build/build_conversion_test.go
@@ -322,6 +322,30 @@
)`,
},
},
+ {
+ blueprint: `custom {
+ name: "embedded_props",
+ embedded_prop: "abc",
+ bazel_module: { bp2build_available: true },
+}`,
+ expectedBazelTargets: []string{`custom(
+ name = "embedded_props",
+ embedded_attr = "abc",
+)`,
+ },
+ },
+ {
+ blueprint: `custom {
+ name: "ptr_to_embedded_props",
+ other_embedded_prop: "abc",
+ bazel_module: { bp2build_available: true },
+}`,
+ expectedBazelTargets: []string{`custom(
+ name = "ptr_to_embedded_props",
+ other_embedded_attr = "abc",
+)`,
+ },
+ },
}
dir := "."