Don't install modules in unexported namespaces

Make builds handle modules with duplicate names in different
namespaces by passing a list of exported namespaces to Soong.
Soong-only builds can try to install both modules, leading to
a duplicate rule error.  Re-use the same list of exported
namespaces in Soong, which will be empty in all existing
Soong-only builds.  This will effectively only install modules
in the root namespace in Soong-only builds.

Test: m checkbuild
Bug: 79369665
Change-Id: Ie80d4b77e1dce165a33579fcf58b571989794b35
This commit is contained in:
Colin Cross 2018-05-07 15:28:05 -07:00
parent 028f42f002
commit 3607f21303
1 changed files with 7 additions and 0 deletions

View File

@ -1015,6 +1015,13 @@ func (a *androidModuleContext) skipInstall(fullInstallPath OutputPath) bool {
return true
}
// We'll need a solution for choosing which of modules with the same name in different
// namespaces to install. For now, reuse the list of namespaces exported to Make as the
// list of namespaces to install in a Soong-only build.
if !a.module.base().commonProperties.NamespaceExportedToMake {
return true
}
if a.Device() {
if a.Config().SkipDeviceInstall() {
return true