Simplify deapexer support
Uses the apex relative path to the file as the identifier that is used
to obtain the path to the corresponding file extracted from the apex.
That is instead of a special constructed string id.
Bug: 177892522
Test: m nothing
Merged-In: I5dc77c8fb272bac289b8891d1eac801e541af1f5
Change-Id: I5dc77c8fb272bac289b8891d1eac801e541af1f5
(cherry picked from commit b4bbf2ca10cc8509e3ae0ab104e9e3b55861831b)
diff --git a/apex/prebuilt.go b/apex/prebuilt.go
index 5179242..9504b07 100644
--- a/apex/prebuilt.go
+++ b/apex/prebuilt.go
@@ -553,8 +553,7 @@
// Compute the deapexer properties from the transitive dependencies of this module.
commonModules := []string{}
- exportedFilesByKey := map[string]string{}
- requiringModulesByKey := map[string]android.Module{}
+ exportedFiles := []string{}
ctx.WalkDeps(func(child, parent android.Module) bool {
tag := ctx.OtherModuleDependencyTag(child)
@@ -568,16 +567,7 @@
commonModules = append(commonModules, name)
requiredFiles := child.(android.RequiredFilesFromPrebuiltApex).RequiredFilesFromPrebuiltApex(ctx)
- for k, v := range requiredFiles {
- if f, ok := exportedFilesByKey[k]; ok && f != v {
- otherModule := requiringModulesByKey[k]
- ctx.ModuleErrorf("inconsistent paths have been requested for key %q, %s requires path %s while %s requires path %s",
- k, child, v, otherModule, f)
- continue
- }
- exportedFilesByKey[k] = v
- requiringModulesByKey[k] = child
- }
+ exportedFiles = append(exportedFiles, requiredFiles...)
// Visit the dependencies of this module just in case they also require files from the
// prebuilt apex.
@@ -595,12 +585,7 @@
}
// Populate the exported files property in a fixed order.
- for _, tag := range android.SortedStringKeys(exportedFilesByKey) {
- deapexerProperties.ExportedFiles = append(deapexerProperties.ExportedFiles, DeapexerExportedFile{
- Tag: tag,
- Path: exportedFilesByKey[tag],
- })
- }
+ deapexerProperties.ExportedFiles = android.SortedUniqueStrings(exportedFiles)
props := struct {
Name *string