From 07656410df1836a70bea3054e50bb410ecbf8e07 Mon Sep 17 00:00:00 2001 From: David Srbecky Date: Thu, 4 Jun 2020 01:26:16 +0100 Subject: [PATCH] Add SrcPath to InstallHookContext Needed by ART to find the intermediate files so that it can also install them in testcases directory for tests. Change-Id: If1b2ad132632c5dc7c6c7573b56680e2f422594a --- android/hooks.go | 11 ++++++++++- android/module.go | 6 +++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/android/hooks.go b/android/hooks.go index f43a007a0..85fc08168 100644 --- a/android/hooks.go +++ b/android/hooks.go @@ -120,6 +120,7 @@ func (l *loadHookContext) registerScopedModuleType(name string, factory blueprin type InstallHookContext interface { ModuleContext + SrcPath() Path Path() InstallPath Symlink() bool } @@ -134,10 +135,17 @@ func AddInstallHook(m blueprint.Module, hook func(InstallHookContext)) { type installHookContext struct { ModuleContext + srcPath Path path InstallPath symlink bool } +var _ InstallHookContext = &installHookContext{} + +func (x *installHookContext) SrcPath() Path { + return x.srcPath +} + func (x *installHookContext) Path() InstallPath { return x.path } @@ -146,10 +154,11 @@ func (x *installHookContext) Symlink() bool { return x.symlink } -func (x *hooks) runInstallHooks(ctx ModuleContext, path InstallPath, symlink bool) { +func (x *hooks) runInstallHooks(ctx ModuleContext, srcPath Path, path InstallPath, symlink bool) { if len(x.install) > 0 { mctx := &installHookContext{ ModuleContext: ctx, + srcPath: srcPath, path: path, symlink: symlink, } diff --git a/android/module.go b/android/module.go index 82321f417..54526139c 100644 --- a/android/module.go +++ b/android/module.go @@ -1955,7 +1955,7 @@ func (m *moduleContext) installFile(installPath InstallPath, name string, srcPat rule blueprint.Rule, deps []Path) InstallPath { fullInstallPath := installPath.Join(m, name) - m.module.base().hooks.runInstallHooks(m, fullInstallPath, false) + m.module.base().hooks.runInstallHooks(m, srcPath, fullInstallPath, false) if !m.skipInstall(fullInstallPath) { @@ -1989,7 +1989,7 @@ func (m *moduleContext) installFile(installPath InstallPath, name string, srcPat func (m *moduleContext) InstallSymlink(installPath InstallPath, name string, srcPath InstallPath) InstallPath { fullInstallPath := installPath.Join(m, name) - m.module.base().hooks.runInstallHooks(m, fullInstallPath, true) + m.module.base().hooks.runInstallHooks(m, srcPath, fullInstallPath, true) if !m.skipInstall(fullInstallPath) { @@ -2018,7 +2018,7 @@ func (m *moduleContext) InstallSymlink(installPath InstallPath, name string, src // (e.g. /apex/...) func (m *moduleContext) InstallAbsoluteSymlink(installPath InstallPath, name string, absPath string) InstallPath { fullInstallPath := installPath.Join(m, name) - m.module.base().hooks.runInstallHooks(m, fullInstallPath, true) + m.module.base().hooks.runInstallHooks(m, nil, fullInstallPath, true) if !m.skipInstall(fullInstallPath) { m.Build(pctx, BuildParams{