diff options
Diffstat (limited to 'android/module_context.go')
-rw-r--r-- | android/module_context.go | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/android/module_context.go b/android/module_context.go index dea22bab4..605d3baeb 100644 --- a/android/module_context.go +++ b/android/module_context.go @@ -444,6 +444,21 @@ func (m *moduleContext) skipInstall() bool { return false } +// Tells whether this module is installed to the full install path (ex: +// out/target/product/<name>/<partition>) or not. If this returns false, the install build rule is +// not created and this module can only be installed to packaging modules like android_filesystem. +func (m *moduleContext) requiresFullInstall() bool { + if m.skipInstall() { + return false + } + + if proptools.Bool(m.module.base().commonProperties.No_full_install) { + return false + } + + return true +} + func (m *moduleContext) InstallFile(installPath InstallPath, name string, srcPath Path, deps ...InstallPath) InstallPath { return m.installFile(installPath, name, srcPath, deps, false, true, nil) @@ -490,7 +505,7 @@ func (m *moduleContext) installFile(installPath InstallPath, name string, srcPat m.module.base().hooks.runInstallHooks(m, srcPath, fullInstallPath, false) } - if !m.skipInstall() { + if m.requiresFullInstall() { deps = append(deps, InstallPaths(m.module.base().installFilesDepSet.ToList())...) deps = append(deps, m.module.base().installedInitRcPaths...) deps = append(deps, m.module.base().installedVintfFragmentsPaths...) @@ -563,7 +578,7 @@ func (m *moduleContext) InstallSymlink(installPath InstallPath, name string, src if err != nil { panic(fmt.Sprintf("Unable to generate symlink between %q and %q: %s", fullInstallPath.Base(), srcPath.Base(), err)) } - if !m.skipInstall() { + if m.requiresFullInstall() { if m.Config().KatiEnabled() { // When creating the symlink rule in Soong but embedding in Make, write the rule to a @@ -612,7 +627,7 @@ func (m *moduleContext) InstallAbsoluteSymlink(installPath InstallPath, name str fullInstallPath := installPath.Join(m, name) m.module.base().hooks.runInstallHooks(m, nil, fullInstallPath, true) - if !m.skipInstall() { + if m.requiresFullInstall() { if m.Config().KatiEnabled() { // When creating the symlink rule in Soong but embedding in Make, write the rule to a // makefile instead of directly to the ninja file so that main.mk can add the |