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

Commit 8aa96276 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...

Merge "Add aidl.deps prop to include aidl implicit deps explicitly in Android.bp" am: cf761256 am: 708673e0 am: 2be450f6 am: f8b266a1

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2539110



Change-Id: I9737ca8a0f5ce49db3ccb35e457234c08010d827
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 9e7509a6 f8b266a1
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",