summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Sam Delmerico <delmerico@google.com> 2023-03-31 17:06:37 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-03-31 17:06:37 +0000
commitaeabcb786926190bade027d80b486d1cc7843dc9 (patch)
treeed2a7a596c1931b03c5cf3a90751e308ce351857
parentac69244b7baf8120767ccc6bdfcf5468765d149f (diff)
parente0033ac0126eae59557c0ab66af22d80150811cc (diff)
Merge "improve error handling for SourceRootDirs" am: b72610665c am: dad03f387c am: e0033ac012
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2516015 Change-Id: Icfaf13bc59e3ac50a57f7c5e68fe6d4fe565b29d Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--android/namespace.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/android/namespace.go b/android/namespace.go
index f357ca7b7..c47a1c593 100644
--- a/android/namespace.go
+++ b/android/namespace.go
@@ -245,6 +245,10 @@ func (r *NameResolver) AllModules() []blueprint.ModuleGroup {
return allModules
}
+func (r *NameResolver) SkippedModuleFromName(moduleName string, namespace blueprint.Namespace) (skipInfos []blueprint.SkippedModuleInfo, skipped bool) {
+ return r.rootNamespace.moduleContainer.SkippedModuleFromName(moduleName, namespace)
+}
+
// parses a fully-qualified path (like "//namespace_path:module_name") into a namespace name and a
// module name
func (r *NameResolver) parseFullyQualifiedName(name string) (namespaceName string, moduleName string, ok bool) {
@@ -333,11 +337,16 @@ func (r *NameResolver) MissingDependencyError(depender string, dependerNamespace
// determine which namespaces the module can be found in
foundInNamespaces := []string{}
+ skippedDepErrors := []error{}
for _, namespace := range r.sortedNamespaces.sortedItems() {
_, found := namespace.moduleContainer.ModuleFromName(depName, nil)
if found {
foundInNamespaces = append(foundInNamespaces, namespace.Path)
}
+ _, skipped := namespace.moduleContainer.SkippedModuleFromName(depName, nil)
+ if skipped {
+ skippedDepErrors = append(skippedDepErrors, namespace.moduleContainer.MissingDependencyError(depender, dependerNamespace, depName))
+ }
}
if len(foundInNamespaces) > 0 {
// determine which namespaces are visible to dependerNamespace
@@ -350,6 +359,9 @@ func (r *NameResolver) MissingDependencyError(depender string, dependerNamespace
text += fmt.Sprintf("\nModule %q is defined in namespace %q which can read these %v namespaces: %q", depender, dependerNs.Path, len(importedNames), importedNames)
text += fmt.Sprintf("\nModule %q can be found in these namespaces: %q", depName, foundInNamespaces)
}
+ for _, err := range skippedDepErrors {
+ text += fmt.Sprintf("\n%s", err.Error())
+ }
return fmt.Errorf(text)
}