add parent static deps to cc_aidl_library targets
The static deps of the parent library can be necessary to build a bp2build-generated cc_aidl_library target. We should add these deps as implementation_deps so that they are accessible. Bug: 250876486 Test: b build //frameworks/native/libs/gui/... Change-Id: Ibe7c3598a684907473e2a4e040fb3976455a59e9
This commit is contained in:
committed by
Liz Kammer
parent
94d107020a
commit
512437b0b4
@@ -736,15 +736,6 @@ var (
|
|||||||
// the "prebuilt_" prefix to the name, so that it's differentiable from
|
// the "prebuilt_" prefix to the name, so that it's differentiable from
|
||||||
// the source versions within Soong's module graph.
|
// the source versions within Soong's module graph.
|
||||||
Bp2buildModuleDoNotConvertList = []string{
|
Bp2buildModuleDoNotConvertList = []string{
|
||||||
// TODO(b/250876486): Created cc_aidl_library doesn't have static libs from parent cc module
|
|
||||||
"libgui_window_info_static",
|
|
||||||
"libgui", // Depends on unconverted libgui_window_info_static
|
|
||||||
"libdisplay", // Depends on uncovnerted libgui
|
|
||||||
// Depends on unconverted libdisplay
|
|
||||||
"libdvr_static.google",
|
|
||||||
"libdvr.google",
|
|
||||||
"libvrsensor",
|
|
||||||
"dvr_api-test",
|
|
||||||
// Depends on unconverted libandroid, libgui
|
// Depends on unconverted libandroid, libgui
|
||||||
"dvr_buffer_queue-test",
|
"dvr_buffer_queue-test",
|
||||||
"dvr_display-test",
|
"dvr_display-test",
|
||||||
|
@@ -3591,42 +3591,57 @@ cc_library {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestCcLibraryWithAidlAndSharedLibs(t *testing.T) {
|
func TestCcLibraryWithAidlAndLibs(t *testing.T) {
|
||||||
runCcLibraryTestCase(t, Bp2buildTestCase{
|
runCcLibraryTestCase(t, Bp2buildTestCase{
|
||||||
Description: "cc_aidl_library depends on shared libs from parent cc_library_static",
|
Description: "cc_aidl_library depends on libs from parent cc_library_static",
|
||||||
ModuleTypeUnderTest: "cc_library",
|
ModuleTypeUnderTest: "cc_library",
|
||||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||||
Blueprint: `
|
Blueprint: `
|
||||||
cc_library_static {
|
cc_library_static {
|
||||||
name: "foo",
|
name: "foo",
|
||||||
srcs: [
|
srcs: [
|
||||||
"Foo.aidl",
|
"Foo.aidl",
|
||||||
],
|
],
|
||||||
|
static_libs: [
|
||||||
|
"bar-static",
|
||||||
|
"baz-static",
|
||||||
|
],
|
||||||
shared_libs: [
|
shared_libs: [
|
||||||
"bar",
|
"bar-shared",
|
||||||
"baz",
|
"baz-shared",
|
||||||
|
],
|
||||||
|
export_static_lib_headers: [
|
||||||
|
"baz-static",
|
||||||
],
|
],
|
||||||
export_shared_lib_headers: [
|
export_shared_lib_headers: [
|
||||||
"baz",
|
"baz-shared",
|
||||||
],
|
],
|
||||||
}` +
|
}` +
|
||||||
simpleModuleDoNotConvertBp2build("cc_library", "bar") +
|
simpleModuleDoNotConvertBp2build("cc_library_static", "bar-static") +
|
||||||
simpleModuleDoNotConvertBp2build("cc_library", "baz"),
|
simpleModuleDoNotConvertBp2build("cc_library_static", "baz-static") +
|
||||||
|
simpleModuleDoNotConvertBp2build("cc_library", "bar-shared") +
|
||||||
|
simpleModuleDoNotConvertBp2build("cc_library", "baz-shared"),
|
||||||
ExpectedBazelTargets: []string{
|
ExpectedBazelTargets: []string{
|
||||||
MakeBazelTarget("aidl_library", "foo_aidl_library", AttrNameToString{
|
MakeBazelTarget("aidl_library", "foo_aidl_library", AttrNameToString{
|
||||||
"srcs": `["Foo.aidl"]`,
|
"srcs": `["Foo.aidl"]`,
|
||||||
}),
|
}),
|
||||||
MakeBazelTarget("cc_aidl_library", "foo_cc_aidl_library", AttrNameToString{
|
MakeBazelTarget("cc_aidl_library", "foo_cc_aidl_library", AttrNameToString{
|
||||||
"deps": `[":foo_aidl_library"]`,
|
"deps": `[":foo_aidl_library"]`,
|
||||||
|
"implementation_deps": `[
|
||||||
|
":baz-static",
|
||||||
|
":bar-static",
|
||||||
|
]`,
|
||||||
"implementation_dynamic_deps": `[
|
"implementation_dynamic_deps": `[
|
||||||
":baz",
|
":baz-shared",
|
||||||
":bar",
|
":bar-shared",
|
||||||
]`,
|
]`,
|
||||||
}),
|
}),
|
||||||
MakeBazelTarget("cc_library_static", "foo", AttrNameToString{
|
MakeBazelTarget("cc_library_static", "foo", AttrNameToString{
|
||||||
"implementation_whole_archive_deps": `[":foo_cc_aidl_library"]`,
|
"implementation_whole_archive_deps": `[":foo_cc_aidl_library"]`,
|
||||||
"dynamic_deps": `[":baz"]`,
|
"deps": `[":baz-static"]`,
|
||||||
"implementation_dynamic_deps": `[":bar"]`,
|
"implementation_deps": `[":bar-static"]`,
|
||||||
|
"dynamic_deps": `[":baz-shared"]`,
|
||||||
|
"implementation_dynamic_deps": `[":bar-shared"]`,
|
||||||
"local_includes": `["."]`,
|
"local_includes": `["."]`,
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
|
@@ -917,15 +917,12 @@ func bp2buildCcAidlLibrary(
|
|||||||
|
|
||||||
if !aidlLibs.IsEmpty() {
|
if !aidlLibs.IsEmpty() {
|
||||||
ccAidlLibrarylabel := m.Name() + "_cc_aidl_library"
|
ccAidlLibrarylabel := m.Name() + "_cc_aidl_library"
|
||||||
// Since cc_aidl_library only needs the dynamic deps (aka shared libs) from the parent cc library for compiling,
|
// Since parent cc_library already has these dependencies, we can add them as implementation
|
||||||
// we err on the side of not re-exporting the headers of the dynamic deps from cc_aidl_lirary
|
// deps so that they don't re-export
|
||||||
// because the parent cc library already has all the dynamic deps
|
implementationDeps := linkerAttrs.deps.Clone()
|
||||||
implementationDynamicDeps := bazel.MakeLabelListAttribute(
|
implementationDeps.Append(linkerAttrs.implementationDeps)
|
||||||
bazel.AppendBazelLabelLists(
|
implementationDynamicDeps := linkerAttrs.dynamicDeps.Clone()
|
||||||
linkerAttrs.dynamicDeps.Value,
|
implementationDynamicDeps.Append(linkerAttrs.implementationDynamicDeps)
|
||||||
linkerAttrs.implementationDynamicDeps.Value,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
ctx.CreateBazelTargetModule(
|
ctx.CreateBazelTargetModule(
|
||||||
bazel.BazelTargetModuleProperties{
|
bazel.BazelTargetModuleProperties{
|
||||||
@@ -935,7 +932,8 @@ func bp2buildCcAidlLibrary(
|
|||||||
android.CommonAttributes{Name: ccAidlLibrarylabel},
|
android.CommonAttributes{Name: ccAidlLibrarylabel},
|
||||||
&ccAidlLibraryAttributes{
|
&ccAidlLibraryAttributes{
|
||||||
Deps: aidlLibs,
|
Deps: aidlLibs,
|
||||||
Implementation_dynamic_deps: implementationDynamicDeps,
|
Implementation_deps: *implementationDeps,
|
||||||
|
Implementation_dynamic_deps: *implementationDynamicDeps,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
label := &bazel.LabelAttribute{
|
label := &bazel.LabelAttribute{
|
||||||
|
@@ -268,6 +268,7 @@ type aidlLibraryAttributes struct {
|
|||||||
|
|
||||||
type ccAidlLibraryAttributes struct {
|
type ccAidlLibraryAttributes struct {
|
||||||
Deps bazel.LabelListAttribute
|
Deps bazel.LabelListAttribute
|
||||||
|
Implementation_deps bazel.LabelListAttribute
|
||||||
Implementation_dynamic_deps bazel.LabelListAttribute
|
Implementation_dynamic_deps bazel.LabelListAttribute
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user