diff --git a/bp2build/cc_library_headers_conversion_test.go b/bp2build/cc_library_headers_conversion_test.go index 2b54d4592..641984b52 100644 --- a/bp2build/cc_library_headers_conversion_test.go +++ b/bp2build/cc_library_headers_conversion_test.go @@ -324,3 +324,69 @@ cc_library_headers { }, }) } + +func TestCcLibraryHeadersExportedStaticLibHeadersReexported(t *testing.T) { + runCcLibraryHeadersTestCase(t, bp2buildTestCase{ + description: "cc_library_headers exported_static_lib_headers is reexported", + moduleTypeUnderTest: "cc_library_headers", + moduleTypeUnderTestFactory: cc.LibraryHeaderFactory, + filesystem: map[string]string{}, + blueprint: soongCcLibraryHeadersPreamble + ` +cc_library_headers { + name: "foo_headers", + export_static_lib_headers: ["foo_export"], + static_libs: ["foo_export", "foo_no_reexport"], + bazel_module: { bp2build_available: true }, +} +` + simpleModuleDoNotConvertBp2build("cc_library_headers", "foo_export"), + expectedBazelTargets: []string{ + makeBazelTarget("cc_library_headers", "foo_headers", attrNameToString{ + "deps": `[":foo_export"]`, + }), + }, + }) +} + +func TestCcLibraryHeadersExportedSharedLibHeadersReexported(t *testing.T) { + runCcLibraryHeadersTestCase(t, bp2buildTestCase{ + description: "cc_library_headers exported_shared_lib_headers is reexported", + moduleTypeUnderTest: "cc_library_headers", + moduleTypeUnderTestFactory: cc.LibraryHeaderFactory, + filesystem: map[string]string{}, + blueprint: soongCcLibraryHeadersPreamble + ` +cc_library_headers { + name: "foo_headers", + export_shared_lib_headers: ["foo_export"], + shared_libs: ["foo_export", "foo_no_reexport"], + bazel_module: { bp2build_available: true }, +} +` + simpleModuleDoNotConvertBp2build("cc_library_headers", "foo_export"), + expectedBazelTargets: []string{ + makeBazelTarget("cc_library_headers", "foo_headers", attrNameToString{ + "deps": `[":foo_export"]`, + }), + }, + }) +} + +func TestCcLibraryHeadersExportedHeaderLibHeadersReexported(t *testing.T) { + runCcLibraryHeadersTestCase(t, bp2buildTestCase{ + description: "cc_library_headers exported_header_lib_headers is reexported", + moduleTypeUnderTest: "cc_library_headers", + moduleTypeUnderTestFactory: cc.LibraryHeaderFactory, + filesystem: map[string]string{}, + blueprint: soongCcLibraryHeadersPreamble + ` +cc_library_headers { + name: "foo_headers", + export_header_lib_headers: ["foo_export"], + header_libs: ["foo_export", "foo_no_reexport"], + bazel_module: { bp2build_available: true }, +} +` + simpleModuleDoNotConvertBp2build("cc_library_headers", "foo_export"), + expectedBazelTargets: []string{ + makeBazelTarget("cc_library_headers", "foo_headers", attrNameToString{ + "deps": `[":foo_export"]`, + }), + }, + }) +} diff --git a/cc/library_headers.go b/cc/library_headers.go index 77c25231c..970d8d1a6 100644 --- a/cc/library_headers.go +++ b/cc/library_headers.go @@ -125,6 +125,7 @@ func libraryHeadersBp2Build(ctx android.TopDownMutatorContext, module *Module) { baseAttributes := bp2BuildParseBaseProps(ctx, module) exportedIncludes := bp2BuildParseExportedIncludes(ctx, module, &baseAttributes.includes) linkerAttrs := baseAttributes.linkerAttributes + (&linkerAttrs.deps).Append(linkerAttrs.dynamicDeps) attrs := &bazelCcLibraryHeadersAttributes{ Export_includes: exportedIncludes.Includes,