Reland "m <apex_name>-deps-info prints the internal/external deps of the APEX""
This reverts commit 4513f703f9902193fc5c29607ddb4a8f71bfd702.
Bug: 1190898
Test: m
Test: EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true NATIVE_COVERAGE=true m dist
Change-Id: I50fdccabb43e4751694db83ee451d388657257e0
diff --git a/apex/builder.go b/apex/builder.go
index 4a760b9..237b7a8 100644
--- a/apex/builder.go
+++ b/apex/builder.go
@@ -554,3 +554,46 @@
}
return ""
}
+
+func (a *apexBundle) buildApexDependencyInfo(ctx android.ModuleContext) {
+ if !a.primaryApexType {
+ return
+ }
+
+ if a.properties.IsCoverageVariant {
+ // Otherwise, we will have duplicated rules for coverage and
+ // non-coverage variants of the same APEX
+ return
+ }
+
+ internalDeps := a.internalDeps
+ externalDeps := a.externalDeps
+
+ internalDeps = android.SortedUniqueStrings(internalDeps)
+ externalDeps = android.SortedUniqueStrings(externalDeps)
+ externalDeps = android.RemoveListFromList(externalDeps, internalDeps)
+
+ var content strings.Builder
+ for _, name := range internalDeps {
+ fmt.Fprintf(&content, "internal %s\\n", name)
+ }
+ for _, name := range externalDeps {
+ fmt.Fprintf(&content, "external %s\\n", name)
+ }
+
+ depsInfoFile := android.PathForOutput(ctx, a.Name()+"-deps-info.txt")
+ ctx.Build(pctx, android.BuildParams{
+ Rule: android.WriteFile,
+ Description: "Dependency Info",
+ Output: depsInfoFile,
+ Args: map[string]string{
+ "content": content.String(),
+ },
+ })
+
+ ctx.Build(pctx, android.BuildParams{
+ Rule: android.Phony,
+ Output: android.PathForPhony(ctx, a.Name()+"-deps-info"),
+ Inputs: []android.Path{depsInfoFile},
+ })
+}