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

Commit f8b266a1 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

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



Change-Id: I06028a22d84d4bec435de13cb30190bdac5d8c93
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 26b0dff3 2be450f6
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",