Support empty srcs for configurable attrs
Test: mixed build linkerconfig
Change-Id: I1ee56f7fa46ce2971ecae6d2ca9258631a32f46a
diff --git a/bp2build/cc_library_static_conversion_test.go b/bp2build/cc_library_static_conversion_test.go
index 833ceba..7709254 100644
--- a/bp2build/cc_library_static_conversion_test.go
+++ b/bp2build/cc_library_static_conversion_test.go
@@ -850,6 +850,84 @@
})
}
+func TestCcLibraryStaticOneArchEmpty(t *testing.T) {
+ runCcLibraryStaticTestCase(t, bp2buildTestCase{
+ description: "cc_library_static one arch empty",
+ moduleTypeUnderTest: "cc_library_static",
+ moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
+ moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
+ depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
+ filesystem: map[string]string{
+ "common.cc": "",
+ "foo-no-arm.cc": "",
+ "foo-excluded.cc": "",
+ },
+ blueprint: soongCcLibraryStaticPreamble + `
+cc_library_static {
+ name: "foo_static",
+ srcs: ["common.cc", "foo-*.cc"],
+ exclude_srcs: ["foo-excluded.cc"],
+ arch: {
+ arm: { exclude_srcs: ["foo-no-arm.cc"] },
+ },
+}`,
+ expectedBazelTargets: []string{`cc_library_static(
+ name = "foo_static",
+ copts = [
+ "-I.",
+ "-I$(BINDIR)/.",
+ ],
+ linkstatic = True,
+ srcs = ["common.cc"] + select({
+ "//build/bazel/platforms/arch:arm": [],
+ "//conditions:default": ["foo-no-arm.cc"],
+ }),
+)`},
+ })
+}
+
+func TestCcLibraryStaticOneArchEmptyOtherSet(t *testing.T) {
+ runCcLibraryStaticTestCase(t, bp2buildTestCase{
+ description: "cc_library_static one arch empty other set",
+ moduleTypeUnderTest: "cc_library_static",
+ moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
+ moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
+ depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
+ filesystem: map[string]string{
+ "common.cc": "",
+ "foo-no-arm.cc": "",
+ "x86-only.cc": "",
+ "foo-excluded.cc": "",
+ },
+ blueprint: soongCcLibraryStaticPreamble + `
+cc_library_static {
+ name: "foo_static",
+ srcs: ["common.cc", "foo-*.cc"],
+ exclude_srcs: ["foo-excluded.cc"],
+ arch: {
+ arm: { exclude_srcs: ["foo-no-arm.cc"] },
+ x86: { srcs: ["x86-only.cc"] },
+ },
+}`,
+ expectedBazelTargets: []string{`cc_library_static(
+ name = "foo_static",
+ copts = [
+ "-I.",
+ "-I$(BINDIR)/.",
+ ],
+ linkstatic = True,
+ srcs = ["common.cc"] + select({
+ "//build/bazel/platforms/arch:arm": [],
+ "//build/bazel/platforms/arch:x86": [
+ "foo-no-arm.cc",
+ "x86-only.cc",
+ ],
+ "//conditions:default": ["foo-no-arm.cc"],
+ }),
+)`},
+ })
+}
+
func TestCcLibraryStaticMultipleDepSameName(t *testing.T) {
runCcLibraryStaticTestCase(t, bp2buildTestCase{
description: "cc_library_static multiple dep same name panic",