trace_processor: add RUN_METRIC to execute dependency files from SQL
This allows for SQL files to rely on other SQL files to be generated
before being executed.
Context: go/perfetto-metrics
Bug: 129747127
Change-Id: I14fe27dcbec1e56e95a8123bd51a539ae428633b
diff --git a/tools/gen_merged_sql_metrics b/tools/gen_merged_sql_metrics
index 6149100..75745f8 100755
--- a/tools/gen_merged_sql_metrics
+++ b/tools/gen_merged_sql_metrics
@@ -57,6 +57,17 @@
};
'''
+FIND_SQL_FN = '''
+inline const char* GetBundledMetric(const char* filename) {
+ for (const auto& filename_to_sql : sql_metrics::kFileToSql) {
+ if (strcmp(filename_to_sql.filename, filename) == 0) {
+ return filename_to_sql.sql;
+ }
+ }
+ return nullptr;
+}
+'''
+
NAMESPACE_END = '''
} // namespace sql_metrics
} // namespace metrics
@@ -70,7 +81,7 @@
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--cpp_out', required=True)
- parser.add_argument('sql_files', action='append')
+ parser.add_argument('sql_files', nargs='*')
args = parser.parse_args()
# Extract the SQL output from each file.
@@ -101,6 +112,7 @@
output.write('\n {{"{}", {}}},\n'.format(name, variable))
output.write("};\n")
+ output.write(FIND_SQL_FN)
output.write(NAMESPACE_END)
return 0