Revert "Revert "Add aidl.deps prop to include aidl implicit deps explicitly in Android.bp""

This reverts commit 8106bd0b00.

Reason for revert: Fix CI breakage

Change-Id: I5f0e72988cbb6845628d0ec7e82292c0aa1914a7
This commit is contained in:
Vinh Tran 2023-06-12 21:07:40 +00:00 committed by Gerrit Code Review
parent 8106bd0b00
commit e3e7711ac6
2 changed files with 48 additions and 0 deletions

View file

@ -81,6 +81,7 @@ type bazelFilegroupAttributes struct {
type bazelAidlLibraryAttributes struct {
Srcs bazel.LabelListAttribute
Strip_import_prefix *string
Deps bazel.LabelListAttribute
}
// api srcs can be contained in filegroups.
@ -119,9 +120,12 @@ func (fg *fileGroup) ConvertWithBp2build(ctx TopDownMutatorContext) {
// and then convert
if fg.ShouldConvertToAidlLibrary(ctx) {
tags := []string{"apex_available=//apex_available:anyapex"}
deps := bazel.MakeLabelListAttribute(BazelLabelForModuleDeps(ctx, fg.properties.Aidl.Deps))
attrs := &bazelAidlLibraryAttributes{
Srcs: srcs,
Strip_import_prefix: fg.properties.Path,
Deps: deps,
}
props := bazel.BazelTargetModuleProperties{
@ -187,6 +191,14 @@ type fileGroupProperties struct {
// Create a make variable with the specified name that contains the list of files in the
// filegroup, relative to the root of the source tree.
Export_to_make_var *string
// aidl is explicitly provided for implicit aidl dependencies
// TODO(b/278298615): aidl prop is a no-op in Soong and is an escape hatch
// to include implicit aidl dependencies for bazel migration compatibility
Aidl struct {
// List of aidl files or filegroup depended on by srcs
Deps []string `android:"path"`
}
}
type fileGroup struct {

View file

@ -105,6 +105,42 @@ func TestFilegroupWithAidlSrcs(t *testing.T) {
}
}
func TestFilegroupWithAidlDeps(t *testing.T) {
bp := `
filegroup {
name: "bar",
srcs: ["bar.aidl"],
}
filegroup {
name: "foo",
srcs: ["aidl/foo.aidl"],
path: "aidl",
aidl: {
deps: [":bar"],
}
}`
t.Run("filegroup with aidl deps", func(t *testing.T) {
expectedBazelTargets := []string{
MakeBazelTargetNoRestrictions("aidl_library", "bar", AttrNameToString{
"srcs": `["bar.aidl"]`,
"tags": `["apex_available=//apex_available:anyapex"]`,
}),
MakeBazelTargetNoRestrictions("aidl_library", "foo", AttrNameToString{
"srcs": `["aidl/foo.aidl"]`,
"strip_import_prefix": `"aidl"`,
"deps": `[":bar"]`,
"tags": `["apex_available=//apex_available:anyapex"]`,
}),
}
runFilegroupTestCase(t, Bp2buildTestCase{
Description: "filegroup with aidl deps",
Blueprint: bp,
ExpectedBazelTargets: expectedBazelTargets,
})
})
}
func TestFilegroupWithAidlAndNonAidlSrcs(t *testing.T) {
runFilegroupTestCase(t, Bp2buildTestCase{
Description: "filegroup with aidl and non-aidl srcs",