Merge "Revert "Revert "Add aidl.deps prop to include aidl implicit deps explicitly in Android.bp"""
This commit is contained in:
@@ -82,6 +82,7 @@ type bazelFilegroupAttributes struct {
|
|||||||
type bazelAidlLibraryAttributes struct {
|
type bazelAidlLibraryAttributes struct {
|
||||||
Srcs bazel.LabelListAttribute
|
Srcs bazel.LabelListAttribute
|
||||||
Strip_import_prefix *string
|
Strip_import_prefix *string
|
||||||
|
Deps bazel.LabelListAttribute
|
||||||
}
|
}
|
||||||
|
|
||||||
// api srcs can be contained in filegroups.
|
// api srcs can be contained in filegroups.
|
||||||
@@ -120,9 +121,12 @@ func (fg *fileGroup) ConvertWithBp2build(ctx TopDownMutatorContext) {
|
|||||||
// and then convert
|
// and then convert
|
||||||
if fg.ShouldConvertToAidlLibrary(ctx) {
|
if fg.ShouldConvertToAidlLibrary(ctx) {
|
||||||
tags := []string{"apex_available=//apex_available:anyapex"}
|
tags := []string{"apex_available=//apex_available:anyapex"}
|
||||||
|
deps := bazel.MakeLabelListAttribute(BazelLabelForModuleDeps(ctx, fg.properties.Aidl.Deps))
|
||||||
|
|
||||||
attrs := &bazelAidlLibraryAttributes{
|
attrs := &bazelAidlLibraryAttributes{
|
||||||
Srcs: srcs,
|
Srcs: srcs,
|
||||||
Strip_import_prefix: fg.properties.Path,
|
Strip_import_prefix: fg.properties.Path,
|
||||||
|
Deps: deps,
|
||||||
}
|
}
|
||||||
|
|
||||||
props := bazel.BazelTargetModuleProperties{
|
props := bazel.BazelTargetModuleProperties{
|
||||||
@@ -199,6 +203,14 @@ type fileGroupProperties struct {
|
|||||||
// Create a make variable with the specified name that contains the list of files in the
|
// 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.
|
// filegroup, relative to the root of the source tree.
|
||||||
Export_to_make_var *string
|
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 {
|
type fileGroup struct {
|
||||||
|
@@ -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) {
|
func TestFilegroupWithAidlAndNonAidlSrcs(t *testing.T) {
|
||||||
runFilegroupTestCase(t, Bp2buildTestCase{
|
runFilegroupTestCase(t, Bp2buildTestCase{
|
||||||
Description: "filegroup with aidl and non-aidl srcs",
|
Description: "filegroup with aidl and non-aidl srcs",
|
||||||
|
Reference in New Issue
Block a user