Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 708673e0 authored by Usta (Tsering) Shrestha's avatar Usta (Tsering) Shrestha Committed by Automerger Merge Worker
Browse files

Merge "Add aidl.deps prop to include aidl implicit deps explicitly in Android.bp" am: cf761256

parents 8ce85df0 cf761256
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -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 {
+36 −0
Original line number Diff line number Diff line
@@ -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",