Soong support for namespaces

Bug: 65683273
Test: build/soong/scripts/diff_build_graphs.sh \
      --products=aosp_arm \
      'build/blueprint:work^ build/soong:work^' \
      'build/blueprint:work build/soong:work'
      # and see that the only changes were:
      # 1. adding some new files
      # 2. changing some line numbers
Test: m -j nothing # which runs unit tests

Change-Id: I6d3e52ef62c4cabe85b9a135a54de0e1a6aab29c
This commit is contained in:
Jeff Gaston
2017-11-09 17:21:27 -08:00
parent 5313911912
commit 63a250a336
10 changed files with 1102 additions and 6 deletions

View File

@@ -25,6 +25,22 @@ import (
"android/soong/android"
)
func newNameResolver(config android.Config) *android.NameResolver {
namespacePathsToExport := make(map[string]bool)
for _, namespaceName := range config.ProductVariables.NamespacesToExport {
namespacePathsToExport[namespaceName] = true
}
namespacePathsToExport["."] = true // always export the root namespace
exportFilter := func(namespace *android.Namespace) bool {
return namespacePathsToExport[namespace.Path]
}
return android.NewNameResolver(exportFilter)
}
func main() {
flag.Parse()
@@ -40,8 +56,7 @@ func main() {
os.Exit(1)
}
// Temporary hack
//ctx.SetIgnoreUnknownModuleTypes(true)
ctx.SetNameInterface(newNameResolver(configuration))
ctx.SetAllowMissingDependencies(configuration.AllowMissingDependencies())