From faf6af31cdee65cfe4dbc26eafff4e9321c67b93 Mon Sep 17 00:00:00 2001 From: Kiyoung Kim Date: Mon, 12 Aug 2024 11:15:19 +0900 Subject: Introduce vintf_fragment module type Introduce a new vintf_fragment module type which handles vintf_fragment files within Soong. This will help process to move vintf_fragment handling logic from KATI to Soong. This change also introduces vintf_fragment_modules property to mark dependency with vintf_fragment modules. Bug: 322089980 Test: m nothing --no-skip-soong-tests passed Change-Id: I49607f42aeee3ded0ba7b078b903dc35f5d61637 --- android/module.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'android/module.go') diff --git a/android/module.go b/android/module.go index f9fab96a9..e161959ab 100644 --- a/android/module.go +++ b/android/module.go @@ -111,6 +111,7 @@ type Module interface { RequiredModuleNames(ctx ConfigAndErrorContext) []string HostRequiredModuleNames() []string TargetRequiredModuleNames() []string + VintfFragmentModuleNames(ctx ConfigAndErrorContext) []string FilesToInstall() InstallPaths PackagingSpecs() []PackagingSpec @@ -497,6 +498,9 @@ type commonProperties struct { // The team (defined by the owner/vendor) who owns the property. Team *string `android:"path"` + + // vintf_fragment Modules required from this module. + Vintf_fragment_modules proptools.Configurable[[]string] `android:"path"` } type distProperties struct { @@ -1028,6 +1032,7 @@ func (m *ModuleBase) baseDepsMutator(ctx BottomUpMutatorContext) { fullManifest := pv.DeviceArch != nil && pv.DeviceName != nil if fullManifest { addRequiredDeps(ctx) + addVintfFragmentDeps(ctx) } } @@ -1105,6 +1110,16 @@ func addRequiredDeps(ctx BottomUpMutatorContext) { } } +var vintfDepTag = struct { + blueprint.BaseDependencyTag + InstallAlwaysNeededDependencyTag +}{} + +func addVintfFragmentDeps(ctx BottomUpMutatorContext) { + mod := ctx.Module() + ctx.AddDependency(mod, vintfDepTag, mod.VintfFragmentModuleNames(ctx)...) +} + // AddProperties "registers" the provided props // each value in props MUST be a pointer to a struct func (m *ModuleBase) AddProperties(props ...interface{}) { @@ -1597,6 +1612,10 @@ func (m *ModuleBase) TargetRequiredModuleNames() []string { return m.base().commonProperties.Target_required } +func (m *ModuleBase) VintfFragmentModuleNames(ctx ConfigAndErrorContext) []string { + return m.base().commonProperties.Vintf_fragment_modules.GetOrDefault(m.ConfigurableEvaluator(ctx), nil) +} + func (m *ModuleBase) InitRc() Paths { return append(Paths{}, m.initRcPaths...) } -- cgit v1.2.3-59-g8ed1b