gn: Minimize rebuilding when commit hash changes
Today, src/base:base depends on a generated header that embeds the
perfetto version (therefore the repository commit hash).
Since almost everything depends on src/base:base, when the commit hash
changes, everything is rebuilt.
This is kind of wasteful when changing commits often (e.g., when doing
bisects).
This commit fixes the problem by putting version header into its own gn
target, which is going to be depended on by only a few other targets.
This avoids, for example, rebuilding the protoc_plugin, which triggers
the recompilation on most of the perfetto code.
Change-Id: I68140570e1abda489d9f30582eed5f8ddb7b3ead
diff --git a/Android.bp b/Android.bp
index c75212b..a02d3ba 100644
--- a/Android.bp
+++ b/Android.bp
@@ -20,6 +20,7 @@
srcs: [
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
+ ":perfetto_include_perfetto_ext_base_version",
":perfetto_include_perfetto_ext_ipc_ipc",
":perfetto_include_perfetto_ext_tracing_core_core",
":perfetto_include_perfetto_ext_tracing_ipc_ipc",
@@ -78,6 +79,7 @@
":perfetto_protos_perfetto_trace_translation_zero_gen",
":perfetto_src_base_base",
":perfetto_src_base_unix_socket",
+ ":perfetto_src_base_version",
":perfetto_src_ipc_client",
":perfetto_src_ipc_common",
":perfetto_src_profiling_common_callstack_trie",
@@ -208,9 +210,6 @@
static_libs: [
"libasync_safe",
],
- generated_headers: [
- "perfetto_src_base_version_gen_h",
- ],
defaults: [
"perfetto_defaults",
],
@@ -253,9 +252,6 @@
export_include_dirs: [
"src/profiling/memory/include",
],
- generated_headers: [
- "perfetto_src_base_version_gen_h",
- ],
defaults: [
"perfetto_defaults",
],
@@ -282,6 +278,7 @@
srcs: [
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
+ ":perfetto_include_perfetto_ext_base_version",
":perfetto_include_perfetto_ext_ipc_ipc",
":perfetto_include_perfetto_ext_tracing_core_core",
":perfetto_include_perfetto_ext_tracing_ipc_ipc",
@@ -340,6 +337,7 @@
":perfetto_protos_perfetto_trace_translation_zero_gen",
":perfetto_src_base_base",
":perfetto_src_base_unix_socket",
+ ":perfetto_src_base_version",
":perfetto_src_ipc_client",
":perfetto_src_ipc_common",
":perfetto_src_profiling_common_callstack_trie",
@@ -459,9 +457,6 @@
static_libs: [
"libprotoc",
],
- generated_headers: [
- "perfetto_src_base_version_gen_h",
- ],
defaults: [
"perfetto_defaults",
],
@@ -477,6 +472,7 @@
srcs: [
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
+ ":perfetto_include_perfetto_ext_base_version",
":perfetto_include_perfetto_ext_ipc_ipc",
":perfetto_include_perfetto_ext_traced_sys_stats_counters",
":perfetto_include_perfetto_ext_traced_traced",
@@ -541,6 +537,7 @@
":perfetto_src_android_stats_perfetto_atoms",
":perfetto_src_base_base",
":perfetto_src_base_unix_socket",
+ ":perfetto_src_base_version",
":perfetto_src_ipc_client",
":perfetto_src_ipc_common",
":perfetto_src_ipc_host",
@@ -689,6 +686,7 @@
srcs: [
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
+ ":perfetto_include_perfetto_ext_base_version",
":perfetto_include_perfetto_ext_ipc_ipc",
":perfetto_include_perfetto_ext_tracing_core_core",
":perfetto_include_perfetto_ext_tracing_ipc_ipc",
@@ -751,6 +749,7 @@
":perfetto_src_android_stats_perfetto_atoms",
":perfetto_src_base_base",
":perfetto_src_base_unix_socket",
+ ":perfetto_src_base_version",
":perfetto_src_ipc_client",
":perfetto_src_ipc_common",
":perfetto_src_ipc_host",
@@ -897,6 +896,7 @@
srcs: [
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
+ ":perfetto_include_perfetto_ext_base_version",
":perfetto_include_perfetto_ext_ipc_ipc",
":perfetto_include_perfetto_ext_traced_traced",
":perfetto_include_perfetto_ext_tracing_core_core",
@@ -960,6 +960,7 @@
":perfetto_src_android_stats_perfetto_atoms",
":perfetto_src_base_base",
":perfetto_src_base_unix_socket",
+ ":perfetto_src_base_version",
":perfetto_src_ipc_client",
":perfetto_src_ipc_common",
":perfetto_src_perfetto_cmd_perfetto_cmd",
@@ -1044,6 +1045,7 @@
srcs: [
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
+ ":perfetto_include_perfetto_ext_base_version",
":perfetto_include_perfetto_ext_ipc_ipc",
":perfetto_include_perfetto_ext_traced_sys_stats_counters",
":perfetto_include_perfetto_ext_traced_traced",
@@ -1125,6 +1127,7 @@
":perfetto_src_base_base",
":perfetto_src_base_test_support",
":perfetto_src_base_unix_socket",
+ ":perfetto_src_base_version",
":perfetto_src_ipc_client",
":perfetto_src_ipc_common",
":perfetto_src_ipc_host",
@@ -1319,6 +1322,7 @@
srcs: [
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
+ ":perfetto_include_perfetto_ext_base_version",
":perfetto_include_perfetto_ext_ipc_ipc",
":perfetto_include_perfetto_ext_traced_sys_stats_counters",
":perfetto_include_perfetto_ext_traced_traced",
@@ -1400,6 +1404,7 @@
":perfetto_src_base_base",
":perfetto_src_base_test_support",
":perfetto_src_base_unix_socket",
+ ":perfetto_src_base_version",
":perfetto_src_ipc_client",
":perfetto_src_ipc_common",
":perfetto_src_ipc_host",
@@ -1634,6 +1639,11 @@
name: "perfetto_include_perfetto_ext_base_http_http",
}
+// GN: //include/perfetto/ext/base:version
+filegroup {
+ name: "perfetto_include_perfetto_ext_base_version",
+}
+
// GN: //include/perfetto/ext/ipc:ipc
filegroup {
name: "perfetto_include_perfetto_ext_ipc_ipc",
@@ -1735,6 +1745,7 @@
srcs: [
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
+ ":perfetto_include_perfetto_ext_base_version",
":perfetto_include_perfetto_ext_ipc_ipc",
":perfetto_include_perfetto_ext_trace_processor_export_json",
":perfetto_include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
@@ -1854,6 +1865,7 @@
":perfetto_src_base_base",
":perfetto_src_base_test_support",
":perfetto_src_base_unix_socket",
+ ":perfetto_src_base_version",
":perfetto_src_ipc_client",
":perfetto_src_ipc_common",
":perfetto_src_ipc_host",
@@ -7602,7 +7614,6 @@
"src/base/unix_task_runner.cc",
"src/base/utils.cc",
"src/base/uuid.cc",
- "src/base/version.cc",
"src/base/virtual_destructors.cc",
"src/base/waitable_event.cc",
"src/base/watchdog_posix.cc",
@@ -7682,6 +7693,14 @@
],
}
+// GN: //src/base:version
+filegroup {
+ name: "perfetto_src_base_version",
+ srcs: [
+ "src/base/version.cc",
+ ],
+}
+
// GN: //src/base:version_gen_h
genrule {
name: "perfetto_src_base_version_gen_h",
@@ -8310,9 +8329,6 @@
static_libs: [
"libprotoc",
],
- generated_headers: [
- "perfetto_src_base_version_gen_h",
- ],
defaults: [
"perfetto_defaults",
],
@@ -10271,6 +10287,7 @@
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_ext_base_http_http",
+ ":perfetto_include_perfetto_ext_base_version",
":perfetto_include_perfetto_ext_ipc_ipc",
":perfetto_include_perfetto_ext_trace_processor_export_json",
":perfetto_include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
@@ -10393,6 +10410,7 @@
":perfetto_src_base_test_support",
":perfetto_src_base_unittests",
":perfetto_src_base_unix_socket",
+ ":perfetto_src_base_version",
":perfetto_src_ipc_client",
":perfetto_src_ipc_common",
":perfetto_src_ipc_host",
@@ -10708,9 +10726,6 @@
static_libs: [
"libprotoc",
],
- generated_headers: [
- "perfetto_src_base_version_gen_h",
- ],
defaults: [
"perfetto_defaults",
],
@@ -10727,6 +10742,7 @@
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_ext_base_http_http",
+ ":perfetto_include_perfetto_ext_base_version",
":perfetto_include_perfetto_ext_trace_processor_export_json",
":perfetto_include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
":perfetto_include_perfetto_ext_traced_sys_stats_counters",
@@ -10771,6 +10787,7 @@
":perfetto_src_base_base",
":perfetto_src_base_http_http",
":perfetto_src_base_unix_socket",
+ ":perfetto_src_base_version",
":perfetto_src_profiling_deobfuscator",
":perfetto_src_profiling_symbolizer_symbolize_database",
":perfetto_src_profiling_symbolizer_symbolizer",
@@ -10897,6 +10914,7 @@
srcs: [
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
+ ":perfetto_include_perfetto_ext_base_version",
":perfetto_include_perfetto_ext_trace_processor_export_json",
":perfetto_include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
":perfetto_include_perfetto_ext_traced_sys_stats_counters",
@@ -10941,6 +10959,7 @@
":perfetto_protos_perfetto_trace_translation_zero_gen",
":perfetto_protos_third_party_pprof_zero_gen",
":perfetto_src_base_base",
+ ":perfetto_src_base_version",
":perfetto_src_profiling_deobfuscator",
":perfetto_src_profiling_symbolizer_symbolize_database",
":perfetto_src_profiling_symbolizer_symbolizer",
@@ -11059,6 +11078,7 @@
srcs: [
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
+ ":perfetto_include_perfetto_ext_base_version",
":perfetto_include_perfetto_ext_ipc_ipc",
":perfetto_include_perfetto_ext_tracing_core_core",
":perfetto_include_perfetto_ext_tracing_ipc_ipc",
@@ -11121,6 +11141,7 @@
":perfetto_src_android_stats_perfetto_atoms",
":perfetto_src_base_base",
":perfetto_src_base_unix_socket",
+ ":perfetto_src_base_version",
":perfetto_src_ipc_client",
":perfetto_src_ipc_common",
":perfetto_src_kallsyms_kallsyms",
@@ -11247,6 +11268,7 @@
srcs: [
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
+ ":perfetto_include_perfetto_ext_base_version",
":perfetto_include_perfetto_ext_ipc_ipc",
":perfetto_include_perfetto_ext_traced_traced",
":perfetto_include_perfetto_ext_tracing_core_core",
@@ -11310,6 +11332,7 @@
":perfetto_src_android_stats_perfetto_atoms",
":perfetto_src_base_base",
":perfetto_src_base_unix_socket",
+ ":perfetto_src_base_version",
":perfetto_src_ipc_client",
":perfetto_src_ipc_common",
":perfetto_src_perfetto_cmd_protos_cpp_gen",