Dump Soong module type statistics to Make
Make will combine this information with statistics gathered from the
Make build, then dump it out to a build artifact.
Change-Id: I2bd84d4f8a8d145c37e3a4c4fcc8fece99e2a1de
diff --git a/android/androidmk.go b/android/androidmk.go
index 7d7707f..232a599 100644
--- a/android/androidmk.go
+++ b/android/androidmk.go
@@ -96,12 +96,28 @@
fmt.Fprintln(buf, "LOCAL_MODULE_MAKEFILE := $(lastword $(MAKEFILE_LIST))")
+ type_stats := make(map[string]int)
for _, mod := range mods {
err := translateAndroidMkModule(ctx, buf, mod)
if err != nil {
os.Remove(mkFile)
return err
}
+
+ if ctx.PrimaryModule(mod) == mod {
+ type_stats[ctx.ModuleType(mod)] += 1
+ }
+ }
+
+ keys := []string{}
+ fmt.Fprintln(buf, "\nSTATS.SOONG_MODULE_TYPE :=")
+ for k := range type_stats {
+ keys = append(keys, k)
+ }
+ sort.Strings(keys)
+ for _, mod_type := range keys {
+ fmt.Fprintln(buf, "STATS.SOONG_MODULE_TYPE +=", mod_type)
+ fmt.Fprintf(buf, "STATS.SOONG_MODULE_TYPE.%s := %d\n", mod_type, type_stats[mod_type])
}
// Don't write to the file if it hasn't changed