Add support and tests for export_*_lib_headers
There are 3 different properties about exporting headers in Soong: 1. export_static_lib_headers 2. export_shared_lib_headers 3. export_header_lib_headers The static and header cases are already supported in bp2build but do not have tests. This CL adds support for the shared case and adds tests for all cases. Fixes: 236268577 Test: Unit tests Change-Id: Idfb788271e607919d4ac6bc0e4eb4e6ff8f78e8d
This commit is contained in:
@@ -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"]`,
|
||||
}),
|
||||
},
|
||||
})
|
||||
}
|
||||
|
@@ -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,
|
||||
|
Reference in New Issue
Block a user