@@ -297,6 +297,8 @@ v8_toolset_for_shell = "host"
297297config (" internal_config_base" ) {
298298 visibility = [ " :*" ] # Only targets in this file can depend on this.
299299
300+ configs = [ " :v8_tracing_config" ]
301+
300302 include_dirs = [
301303 " ." ,
302304 " $target_gen_dir " ,
@@ -311,7 +313,6 @@ config("internal_config") {
311313 " //build/config/compiler:wexit_time_destructors" ,
312314 " :internal_config_base" ,
313315 " :v8_header_features" ,
314- " :v8_tracing_config" ,
315316 ]
316317
317318 if (is_component_build ) {
@@ -1282,6 +1283,7 @@ v8_source_set("torque_generated_initializers") {
12821283 deps = [
12831284 " :generate_bytecode_builtins_list" ,
12841285 " :run_torque" ,
1286+ " :v8_tracing" ,
12851287 ]
12861288
12871289 public_deps = [ " :v8_maybe_icu" ]
@@ -1310,6 +1312,7 @@ v8_source_set("torque_generated_definitions") {
13101312 deps = [
13111313 " :generate_bytecode_builtins_list" ,
13121314 " :run_torque" ,
1315+ " :v8_tracing" ,
13131316 ]
13141317
13151318 public_deps = [ " :v8_maybe_icu" ]
@@ -2054,6 +2057,18 @@ group("v8_compiler_for_mksnapshot") {
20542057 }
20552058}
20562059
2060+ # Any target using trace events must directly or indirectly depend on
2061+ # v8_tracing.
2062+ group (" v8_tracing" ) {
2063+ if (v8_use_perfetto ) {
2064+ if (build_with_chromium ) {
2065+ public_deps = [ " //third_party/perfetto:libperfetto" ]
2066+ } else {
2067+ public_deps = [ " :v8_libperfetto" ]
2068+ }
2069+ }
2070+ }
2071+
20572072v8_source_set (" v8_base_without_compiler" ) {
20582073 visibility = [ " :*" ] # Only targets in this file can depend on this.
20592074
@@ -3439,6 +3454,7 @@ v8_source_set("v8_base_without_compiler") {
34393454 " :v8_libbase" ,
34403455 " :v8_libsampler" ,
34413456 " :v8_shared_internal_headers" ,
3457+ " :v8_tracing" ,
34423458 " :v8_version" ,
34433459 " src/inspector:inspector" ,
34443460 ]
@@ -3530,6 +3546,14 @@ v8_source_set("v8_base_without_compiler") {
35303546 ]
35313547 deps += [ " src/third_party/vtune:v8_vtune_trace_mark" ]
35323548 }
3549+
3550+ if (v8_use_perfetto ) {
3551+ sources -= [ " //base/trace_event/common/trace_event_common.h" ]
3552+ sources += [
3553+ " src/tracing/trace-categories.cc" ,
3554+ " src/tracing/trace-categories.h" ,
3555+ ]
3556+ }
35333557}
35343558
35353559group (" v8_base" ) {
@@ -3892,20 +3916,25 @@ v8_component("v8_libplatform") {
38923916 deps = [
38933917 " :v8_headers" ,
38943918 " :v8_libbase" ,
3919+ " :v8_tracing" ,
38953920 ]
3921+
38963922 if (v8_use_perfetto ) {
3923+ sources -= [
3924+ " //base/trace_event/common/trace_event_common.h" ,
3925+ " src/libplatform/tracing/trace-buffer.cc" ,
3926+ " src/libplatform/tracing/trace-buffer.h" ,
3927+ " src/libplatform/tracing/trace-object.cc" ,
3928+ " src/libplatform/tracing/trace-writer.cc" ,
3929+ " src/libplatform/tracing/trace-writer.h" ,
3930+ ]
38973931 sources += [
3898- " src/libplatform/tracing/json-trace-event-listener.cc" ,
3899- " src/libplatform/tracing/json-trace-event-listener.h" ,
39003932 " src/libplatform/tracing/trace-event-listener.cc" ,
39013933 " src/libplatform/tracing/trace-event-listener.h" ,
39023934 ]
39033935 deps += [
3936+ # TODO(skyostil ): Switch TraceEventListener to protozero.
39043937 " //third_party/perfetto/protos/perfetto/trace:lite" ,
3905- " //third_party/perfetto/protos/perfetto/trace/chrome:minimal_complete_lite" ,
3906- " //third_party/perfetto/protos/perfetto/trace/chrome:zero" ,
3907- " //third_party/perfetto/src/tracing:client_api" ,
3908- " //third_party/perfetto/src/tracing:platform_posix" ,
39093938 ]
39103939 }
39113940}
@@ -3933,9 +3962,8 @@ v8_source_set("fuzzer_support") {
39333962
39343963 configs = [ " :internal_config_base" ]
39353964
3936- deps = [ " :v8" ]
3937-
39383965 public_deps = [
3966+ " :v8" ,
39393967 " :v8_libbase" ,
39403968 " :v8_libplatform" ,
39413969 " :v8_maybe_icu" ,
@@ -4443,6 +4471,7 @@ v8_executable("d8") {
44434471 " :v8" ,
44444472 " :v8_libbase" ,
44454473 " :v8_libplatform" ,
4474+ " :v8_tracing" ,
44464475 " //build/win:default_exe_manifest" ,
44474476 ]
44484477
@@ -4461,10 +4490,6 @@ v8_executable("d8") {
44614490 if (v8_enable_vtunejit ) {
44624491 deps += [ " src/third_party/vtune:v8_vtune" ]
44634492 }
4464-
4465- if (v8_use_perfetto ) {
4466- deps += [ " //third_party/perfetto/src/tracing:in_process_backend" ]
4467- }
44684493}
44694494
44704495v8_executable (" v8_hello_world" ) {
@@ -4620,6 +4645,7 @@ v8_source_set("wasm_module_runner") {
46204645 deps = [
46214646 " :generate_bytecode_builtins_list" ,
46224647 " :run_torque" ,
4648+ " :v8_tracing" ,
46234649 ]
46244650
46254651 public_deps = [ " :v8_maybe_icu" ]
@@ -4696,6 +4722,7 @@ v8_source_set("lib_wasm_fuzzer_common") {
46964722 deps = [
46974723 " :generate_bytecode_builtins_list" ,
46984724 " :run_torque" ,
4725+ " :v8_tracing" ,
46994726 ]
47004727
47014728 public_deps = [ " :v8_maybe_icu" ]
@@ -4778,7 +4805,7 @@ if (!build_with_chromium && v8_use_perfetto) {
47784805 " -Wno-tautological-constant-compare" ,
47794806 ]
47804807 }
4781- if (is_win ) {
4808+ if (is_win && is_clang ) {
47824809 cflags += [ " -Wno-microsoft-unqualified-friend" ]
47834810 }
47844811 }
@@ -4937,4 +4964,21 @@ if (!build_with_chromium && v8_use_perfetto) {
49374964 configs += [ " //build/config/compiler:no_chromium_code" ]
49384965 }
49394966 } # host_toolchain
4967+
4968+ v8_component (" v8_libperfetto" ) {
4969+ configs = [ " :v8_tracing_config" ]
4970+ public_configs = [ " //third_party/perfetto/gn:public_config" ]
4971+ deps = [
4972+ " //third_party/perfetto/src/trace_processor:export_json" ,
4973+ " //third_party/perfetto/src/trace_processor:storage_minimal" ,
4974+ " //third_party/perfetto/src/tracing:client_api" ,
4975+ " //third_party/perfetto/src/tracing/core" ,
4976+
4977+ # TODO(skyostil ): Support non-POSIX platforms.
4978+ " //third_party/perfetto/protos/perfetto/config:cpp" ,
4979+ " //third_party/perfetto/protos/perfetto/trace/track_event:zero" ,
4980+ " //third_party/perfetto/src/tracing:in_process_backend" ,
4981+ " //third_party/perfetto/src/tracing:platform_posix" ,
4982+ ]
4983+ }
49404984} # if (!build_with_chromium && v8_use_perfetto)
0 commit comments