summaryrefslogtreecommitdiff
path: root/android/module.go
diff options
context:
space:
mode:
author Yu Liu <yudiliu@google.com> 2024-08-20 23:23:24 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2024-08-20 23:23:24 +0000
commit97bf07a2ef8f5fd3c78cd674f35120e55df7d45e (patch)
treeb3b9f515ba7d41beb695918be7f306e6e27b93f1 /android/module.go
parent5fdb54d4393505a38d25fa633ea11968ebbf1316 (diff)
parentddc2e1ac098338d04d8f60c00f348d16bcb0dc59 (diff)
Merge "Remove build target related fields from ModuleBase." into main
Diffstat (limited to 'android/module.go')
-rw-r--r--android/module.go43
1 files changed, 24 insertions, 19 deletions
diff --git a/android/module.go b/android/module.go
index 0e44a37f5..95908f842 100644
--- a/android/module.go
+++ b/android/module.go
@@ -846,12 +846,6 @@ type ModuleBase struct {
// The files to copy to the dist as explicitly specified in the .bp file.
distFiles TaggedDistFiles
- // Used by buildTargetSingleton to create checkbuild and per-directory build targets
- // Only set on the final variant of each module
- installTarget WritablePath
- checkbuildTarget WritablePath
- blueprintDir string
-
hooks hooks
registerProps []interface{}
@@ -1653,18 +1647,20 @@ func (m *ModuleBase) generateModuleTarget(ctx *moduleContext) {
namespacePrefix = strings.ReplaceAll(nameSpace, "/", ".") + "-"
}
+ var info FinalModuleBuildTargetsInfo
+
if len(allInstalledFiles) > 0 {
name := namespacePrefix + ctx.ModuleName() + "-install"
ctx.Phony(name, allInstalledFiles.Paths()...)
- m.installTarget = PathForPhony(ctx, name)
- deps = append(deps, m.installTarget)
+ info.InstallTarget = PathForPhony(ctx, name)
+ deps = append(deps, info.InstallTarget)
}
if len(allCheckbuildFiles) > 0 {
name := namespacePrefix + ctx.ModuleName() + "-checkbuild"
ctx.Phony(name, allCheckbuildFiles...)
- m.checkbuildTarget = PathForPhony(ctx, name)
- deps = append(deps, m.checkbuildTarget)
+ info.CheckbuildTarget = PathForPhony(ctx, name)
+ deps = append(deps, info.CheckbuildTarget)
}
if len(deps) > 0 {
@@ -1675,7 +1671,8 @@ func (m *ModuleBase) generateModuleTarget(ctx *moduleContext) {
ctx.Phony(namespacePrefix+ctx.ModuleName()+suffix, deps...)
- m.blueprintDir = ctx.ModuleDir()
+ info.BlueprintDir = ctx.ModuleDir()
+ SetProvider(ctx, FinalModuleBuildTargetsProvider, info)
}
}
@@ -1790,6 +1787,16 @@ type InstallFilesInfo struct {
TestData []DataPath
}
+var FinalModuleBuildTargetsProvider = blueprint.NewProvider[FinalModuleBuildTargetsInfo]()
+
+type FinalModuleBuildTargetsInfo struct {
+ // Used by buildTargetSingleton to create checkbuild and per-directory build targets
+ // Only set on the final variant of each module
+ InstallTarget WritablePath
+ CheckbuildTarget WritablePath
+ BlueprintDir string
+}
+
var InstallFilesProvider = blueprint.NewProvider[InstallFilesInfo]()
func (m *ModuleBase) GenerateBuildActions(blueprintCtx blueprint.ModuleContext) {
@@ -2662,17 +2669,15 @@ func (c *buildTargetSingleton) GenerateBuildActions(ctx SingletonContext) {
modulesInDir := make(map[string]Paths)
ctx.VisitAllModules(func(module Module) {
- blueprintDir := module.base().blueprintDir
- installTarget := module.base().installTarget
- checkbuildTarget := module.base().checkbuildTarget
+ info := OtherModuleProviderOrDefault(ctx, module, FinalModuleBuildTargetsProvider)
- if checkbuildTarget != nil {
- checkbuildDeps = append(checkbuildDeps, checkbuildTarget)
- modulesInDir[blueprintDir] = append(modulesInDir[blueprintDir], checkbuildTarget)
+ if info.CheckbuildTarget != nil {
+ checkbuildDeps = append(checkbuildDeps, info.CheckbuildTarget)
+ modulesInDir[info.BlueprintDir] = append(modulesInDir[info.BlueprintDir], info.CheckbuildTarget)
}
- if installTarget != nil {
- modulesInDir[blueprintDir] = append(modulesInDir[blueprintDir], installTarget)
+ if info.InstallTarget != nil {
+ modulesInDir[info.BlueprintDir] = append(modulesInDir[info.BlueprintDir], info.InstallTarget)
}
})