summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <treehugger-gerrit@google.com> 2023-03-29 17:04:37 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2023-03-29 17:04:37 +0000
commit998fdd7e37d3081acceffbea2f47ed84d29981b2 (patch)
treef7f6873820d6e5235b7fdfcf89a42973d7cab64f
parent3f3320cb1c2a905d0baa6dc8120a8ca41f5c0b2d (diff)
parent98a7329d59a4b47040f25f2b4373fda891c60d32 (diff)
Merge "support PRODUCT_SOURCE_ROOT_DIRS product variable"
-rw-r--r--android/config.go4
-rw-r--r--android/namespace.go6
-rw-r--r--android/register.go1
-rw-r--r--android/variable.go3
-rw-r--r--cmd/soong_build/main.go1
-rw-r--r--ui/build/config.go11
-rw-r--r--ui/build/dumpvars.go2
-rw-r--r--ui/build/soong.go1
8 files changed, 26 insertions, 3 deletions
diff --git a/android/config.go b/android/config.go
index e0b661bb7..9d530919e 100644
--- a/android/config.go
+++ b/android/config.go
@@ -1179,6 +1179,10 @@ func (c *config) ExportedNamespaces() []string {
return append([]string(nil), c.productVariables.NamespacesToExport...)
}
+func (c *config) SourceRootDirs() []string {
+ return c.productVariables.SourceRootDirs
+}
+
func (c *config) IncludeTags() []string {
return c.productVariables.IncludeTags
}
diff --git a/android/namespace.go b/android/namespace.go
index b43ffdf19..f357ca7b7 100644
--- a/android/namespace.go
+++ b/android/namespace.go
@@ -225,6 +225,10 @@ func (r *NameResolver) NewModule(ctx blueprint.NamespaceContext, moduleGroup blu
return ns, nil
}
+func (r *NameResolver) NewSkippedModule(ctx blueprint.NamespaceContext, name string, skipInfo blueprint.SkippedModuleInfo) {
+ r.rootNamespace.moduleContainer.NewSkippedModule(ctx, name, skipInfo)
+}
+
func (r *NameResolver) AllModules() []blueprint.ModuleGroup {
childLists := [][]blueprint.ModuleGroup{}
totalCount := 0
@@ -300,7 +304,7 @@ func (r *NameResolver) FindNamespaceImports(namespace *Namespace) (err error) {
for _, name := range namespace.importedNamespaceNames {
imp, ok := r.namespaceAt(name)
if !ok {
- return fmt.Errorf("namespace %v does not exist", name)
+ return fmt.Errorf("namespace %v does not exist; Some necessary modules may have been skipped by Soong. Check if PRODUCT_SOURCE_ROOT_DIRS is pruning necessary Android.bp files.", name)
}
namespace.visibleNamespaces = append(namespace.visibleNamespaces, imp)
}
diff --git a/android/register.go b/android/register.go
index 9a3d3aa9c..1a3db9d90 100644
--- a/android/register.go
+++ b/android/register.go
@@ -162,6 +162,7 @@ func NewContext(config Config) *Context {
ctx := &Context{blueprint.NewContext(), config}
ctx.SetSrcDir(absSrcDir)
ctx.AddIncludeTags(config.IncludeTags()...)
+ ctx.AddSourceRootDirs(config.SourceRootDirs()...)
return ctx
}
diff --git a/android/variable.go b/android/variable.go
index 8c5c0bc03..04cc2051b 100644
--- a/android/variable.go
+++ b/android/variable.go
@@ -461,7 +461,8 @@ type productVariables struct {
IgnorePrefer32OnDevice bool `json:",omitempty"`
- IncludeTags []string `json:",omitempty"`
+ IncludeTags []string `json:",omitempty"`
+ SourceRootDirs []string `json:",omitempty"`
}
func boolPtr(v bool) *bool {
diff --git a/cmd/soong_build/main.go b/cmd/soong_build/main.go
index 2ace7468c..96aa117d9 100644
--- a/cmd/soong_build/main.go
+++ b/cmd/soong_build/main.go
@@ -105,6 +105,7 @@ func newContext(configuration android.Config) *android.Context {
ctx.SetNameInterface(newNameResolver(configuration))
ctx.SetAllowMissingDependencies(configuration.AllowMissingDependencies())
ctx.AddIncludeTags(configuration.IncludeTags()...)
+ ctx.AddSourceRootDirs(configuration.SourceRootDirs()...)
return ctx
}
diff --git a/ui/build/config.go b/ui/build/config.go
index 9664548af..b5406b9d4 100644
--- a/ui/build/config.go
+++ b/ui/build/config.go
@@ -117,7 +117,8 @@ type configImpl struct {
bazelForceEnabledModules string
- includeTags []string
+ includeTags []string
+ sourceRootDirs []string
// Data source to write ninja weight list
ninjaWeightListSource NinjaWeightListSource
@@ -1229,6 +1230,14 @@ func (c *configImpl) Parallel() int {
return c.parallel
}
+func (c *configImpl) GetSourceRootDirs() []string {
+ return c.sourceRootDirs
+}
+
+func (c *configImpl) SetSourceRootDirs(i []string) {
+ c.sourceRootDirs = i
+}
+
func (c *configImpl) GetIncludeTags() []string {
return c.includeTags
}
diff --git a/ui/build/dumpvars.go b/ui/build/dumpvars.go
index a9c298f57..efe747819 100644
--- a/ui/build/dumpvars.go
+++ b/ui/build/dumpvars.go
@@ -148,6 +148,7 @@ var BannerVars = []string{
"PLATFORM_VERSION_CODENAME",
"PLATFORM_VERSION",
"PRODUCT_INCLUDE_TAGS",
+ "PRODUCT_SOURCE_ROOT_DIRS",
"TARGET_PRODUCT",
"TARGET_BUILD_VARIANT",
"TARGET_BUILD_APPS",
@@ -299,4 +300,5 @@ func runMakeProductConfig(ctx Context, config Config) {
config.SetBuildBrokenUsesNetwork(makeVars["BUILD_BROKEN_USES_NETWORK"] == "true")
config.SetBuildBrokenNinjaUsesEnvVars(strings.Fields(makeVars["BUILD_BROKEN_NINJA_USES_ENV_VARS"]))
config.SetIncludeTags(strings.Fields(makeVars["PRODUCT_INCLUDE_TAGS"]))
+ config.SetSourceRootDirs(strings.Fields(makeVars["PRODUCT_SOURCE_ROOT_DIRS"]))
}
diff --git a/ui/build/soong.go b/ui/build/soong.go
index 871e63785..c4c984fb7 100644
--- a/ui/build/soong.go
+++ b/ui/build/soong.go
@@ -410,6 +410,7 @@ func bootstrapBlueprint(ctx Context, config Config) {
blueprintCtx := blueprint.NewContext()
blueprintCtx.AddIncludeTags(config.GetIncludeTags()...)
+ blueprintCtx.AddSourceRootDirs(config.GetSourceRootDirs()...)
blueprintCtx.SetIgnoreUnknownModuleTypes(true)
blueprintConfig := BlueprintConfig{
soongOutDir: config.SoongOutDir(),