diff options
author | Muhammad Qureshi <muhammadq@google.com> | 2020-01-29 11:09:43 -0800 |
---|---|---|
committer | Muhammad Qureshi <muhammadq@google.com> | 2020-01-29 14:27:04 -0800 |
commit | bb699b68c00e6cfdf82b0c01b54f41575f587324 (patch) | |
tree | 8107e032fee6654e21fe8d304cc2abebd2f4ca43 /tools/stats_log_api_gen/main.cpp | |
parent | b11e00d655e0c855b09ac66fe3d0f4b36c806d7d (diff) |
Generate compile-time Q-compatible StatsLog
Bug: 148388745
Test: m NetworkStack
Test: m NetworkStackNext
Change-Id: Ic37bb67ce625d0a583c424d4775e9f0fa132c418
Diffstat (limited to 'tools/stats_log_api_gen/main.cpp')
-rw-r--r-- | tools/stats_log_api_gen/main.cpp | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/tools/stats_log_api_gen/main.cpp b/tools/stats_log_api_gen/main.cpp index 6089532e1ca4..ddbf22c7f12a 100644 --- a/tools/stats_log_api_gen/main.cpp +++ b/tools/stats_log_api_gen/main.cpp @@ -511,8 +511,10 @@ print_usage() fprintf(stderr, " --javaClass CLASS the class name of the java class.\n"); fprintf(stderr, " Optional for Java with module.\n"); fprintf(stderr, " Default is \"StatsLogInternal\"\n"); - fprintf(stderr, " --supportQ Include support for Android Q.\n"); + fprintf(stderr, " --supportQ Include runtime support for Android Q.\n"); fprintf(stderr, " --worksource Include support for logging WorkSource objects.\n"); + fprintf(stderr, " --compileQ Include compile-time support for Android Q " + "(Java only).\n"); } /** @@ -536,6 +538,7 @@ run(int argc, char const*const* argv) string javaClass = DEFAULT_JAVA_CLASS; bool supportQ = false; bool supportWorkSource = false; + bool compileQ = false; int index = 1; while (index < argc) { @@ -630,6 +633,8 @@ run(int argc, char const*const* argv) supportQ = true; } else if (0 == strcmp("--worksource", argv[index])) { supportWorkSource = true; + } else if (0 == strcmp("--compileQ", argv[index])) { + compileQ = true; } index++; @@ -645,12 +650,18 @@ run(int argc, char const*const* argv) return 1; } - if (DEFAULT_MODULE_NAME == moduleName && supportQ) { + if (DEFAULT_MODULE_NAME == moduleName && (supportQ || compileQ)) { // Support for Q schema is not needed for default module. fprintf(stderr, "%s cannot support Q schema\n", moduleName.c_str()); return 1; } + if (supportQ && compileQ) { + // Runtime Q support is redundant if compile-time Q support is required. + fprintf(stderr, "Cannot specify compileQ and supportQ simultaneously.\n"); + return 1; + } + // Collate the parameters Atoms atoms; int errorCount = collate_atoms(Atom::descriptor(), &atoms); @@ -748,9 +759,15 @@ run(int argc, char const*const* argv) javaClass = "StatsLogInternal"; javaPackage = "android.util"; } - errorCount = android::stats_log_api_gen::write_stats_log_java( - out, atoms, attributionDecl, moduleName, javaClass, javaPackage, supportQ, - supportWorkSource); + if (compileQ) { + errorCount = android::stats_log_api_gen::write_stats_log_java_q_for_module( + out, atoms, attributionDecl, moduleName, javaClass, javaPackage, + supportWorkSource); + } else { + errorCount = android::stats_log_api_gen::write_stats_log_java( + out, atoms, attributionDecl, moduleName, javaClass, javaPackage, supportQ, + supportWorkSource); + } #endif fclose(out); |