From 44616ccdceac01959d0f084b8d86fc65c1dfa6ff Mon Sep 17 00:00:00 2001 From: Hugo Drumond Jacob Date: Mon, 20 May 2024 18:39:44 +0200 Subject: [PATCH] Dump the required modules into module-info.json Certain applications, like tracking the dependency chain of modules, knowing the "required" dependencies is required. In this context, "required" here means the `required` field in Android.bp files. Bug: 339193439 Test: Inspect module-info.json for the `required` field Change-Id: I420c781d410e715ef86823278f99e4ffe51f8022 --- android/module.go | 1 + android/module_info_json.go | 2 ++ 2 files changed, 3 insertions(+) diff --git a/android/module.go b/android/module.go index c17f315a0..4dc16888c 100644 --- a/android/module.go +++ b/android/module.go @@ -1982,6 +1982,7 @@ func (m *ModuleBase) GenerateBuildActions(blueprintCtx blueprint.ModuleContext) TargetDependencies: targetRequired, HostDependencies: hostRequired, Data: data, + Required: m.RequiredModuleNames(), } SetProvider(ctx, ModuleInfoJSONProvider, m.moduleInfoJSON) } diff --git a/android/module_info_json.go b/android/module_info_json.go index 1c0a38e5a..ee552dce5 100644 --- a/android/module_info_json.go +++ b/android/module_info_json.go @@ -17,6 +17,7 @@ type CoreModuleInfoJSON struct { HostDependencies []string `json:"host_dependencies,omitempty"` // $(sort $(ALL_MODULES.$(m).HOST_REQUIRED_FROM_TARGET)) TargetDependencies []string `json:"target_dependencies,omitempty"` // $(sort $(ALL_MODULES.$(m).TARGET_REQUIRED_FROM_HOST)) Data []string `json:"data,omitempty"` // $(sort $(ALL_MODULES.$(m).TEST_DATA)) + Required []string `json:"required,omitempty"` // $(sort $(ALL_MODULES.$(m).REQUIRED_FROM_TARGET)) } type ModuleInfoJSON struct { @@ -77,6 +78,7 @@ func encodeModuleInfoJSON(w io.Writer, moduleInfoJSON *ModuleInfoJSON) error { sortAndUnique(&moduleInfoJSONCopy.core.HostDependencies) sortAndUnique(&moduleInfoJSONCopy.core.TargetDependencies) sortAndUnique(&moduleInfoJSONCopy.core.Data) + sortAndUnique(&moduleInfoJSONCopy.core.Required) sortAndUnique(&moduleInfoJSONCopy.Class) sortAndUnique(&moduleInfoJSONCopy.Tags)