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
This commit is contained in:
David Srbecky 2020-06-04 01:26:16 +01:00
parent 3747336d23
commit 07656410df
2 changed files with 13 additions and 4 deletions

View File

@ -120,6 +120,7 @@ func (l *loadHookContext) registerScopedModuleType(name string, factory blueprin
type InstallHookContext interface { type InstallHookContext interface {
ModuleContext ModuleContext
SrcPath() Path
Path() InstallPath Path() InstallPath
Symlink() bool Symlink() bool
} }
@ -134,10 +135,17 @@ func AddInstallHook(m blueprint.Module, hook func(InstallHookContext)) {
type installHookContext struct { type installHookContext struct {
ModuleContext ModuleContext
srcPath Path
path InstallPath path InstallPath
symlink bool symlink bool
} }
var _ InstallHookContext = &installHookContext{}
func (x *installHookContext) SrcPath() Path {
return x.srcPath
}
func (x *installHookContext) Path() InstallPath { func (x *installHookContext) Path() InstallPath {
return x.path return x.path
} }
@ -146,10 +154,11 @@ func (x *installHookContext) Symlink() bool {
return x.symlink 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 { if len(x.install) > 0 {
mctx := &installHookContext{ mctx := &installHookContext{
ModuleContext: ctx, ModuleContext: ctx,
srcPath: srcPath,
path: path, path: path,
symlink: symlink, symlink: symlink,
} }

View File

@ -1955,7 +1955,7 @@ func (m *moduleContext) installFile(installPath InstallPath, name string, srcPat
rule blueprint.Rule, deps []Path) InstallPath { rule blueprint.Rule, deps []Path) InstallPath {
fullInstallPath := installPath.Join(m, name) 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) { 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 { func (m *moduleContext) InstallSymlink(installPath InstallPath, name string, srcPath InstallPath) InstallPath {
fullInstallPath := installPath.Join(m, name) 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) { if !m.skipInstall(fullInstallPath) {
@ -2018,7 +2018,7 @@ func (m *moduleContext) InstallSymlink(installPath InstallPath, name string, src
// (e.g. /apex/...) // (e.g. /apex/...)
func (m *moduleContext) InstallAbsoluteSymlink(installPath InstallPath, name string, absPath string) InstallPath { func (m *moduleContext) InstallAbsoluteSymlink(installPath InstallPath, name string, absPath string) InstallPath {
fullInstallPath := installPath.Join(m, name) 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) { if !m.skipInstall(fullInstallPath) {
m.Build(pctx, BuildParams{ m.Build(pctx, BuildParams{