| # Copyright 2018 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # There should be only one tracing service. It is currently |
| # in the browser process. So, only //content/browser should link to this target. |
| # Others modules should only need the public targets. |
| |
| import("//build/config/compiler/compiler.gni") |
| import("//services/tracing/public/cpp/stack_sampling/loader_lock_sampling.gni") |
| |
| if (is_android) { |
| import("//build/config/android/rules.gni") |
| } |
| |
| source_set("lib") { |
| sources = [ |
| "perfetto/consumer_host.cc", |
| "perfetto/consumer_host.h", |
| "perfetto/perfetto_service.cc", |
| "perfetto/perfetto_service.h", |
| "perfetto/producer_host.cc", |
| "perfetto/producer_host.h", |
| "tracing_service.cc", |
| "tracing_service.h", |
| ] |
| |
| configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| |
| public_deps = [ |
| "//base", |
| "//mojo/public/cpp/bindings", |
| "//services/tracing/public/cpp", |
| "//third_party/perfetto:libperfetto", |
| "//third_party/perfetto/protos/perfetto/config:lite", |
| ] |
| } |
| |
| source_set("privacy_check") { |
| testonly = true |
| |
| sources = [ |
| "perfetto/privacy_filtered_fields-inl.h", |
| "perfetto/privacy_filtering_check.cc", |
| "perfetto/privacy_filtering_check.h", |
| ] |
| |
| deps = [ |
| "//base", |
| "//third_party/perfetto:libperfetto", |
| ] |
| } |
| |
| source_set("test_utils") { |
| testonly = true |
| |
| sources = [ |
| "perfetto/test_utils.cc", |
| "perfetto/test_utils.h", |
| ] |
| |
| deps = [ |
| ":lib", |
| "//testing/gtest", |
| "//third_party/perfetto/protos/perfetto/common:lite", |
| "//third_party/perfetto/protos/perfetto/trace:lite", |
| ] |
| |
| if (is_posix) { |
| sources += [ |
| "perfetto/system_test_utils.cc", |
| "perfetto/system_test_utils.h", |
| ] |
| } |
| } |
| |
| source_set("tests") { |
| testonly = true |
| |
| sources = [ |
| "perfetto/consumer_host_unittest.cc", |
| "perfetto/perfetto_integration_unittest.cc", |
| "public/cpp/perfetto/java_heap_profiler/hprof_buffer_android_unittest.cc", |
| "public/cpp/perfetto/java_heap_profiler/hprof_parser_android_unittest.cc", |
| "public/cpp/perfetto/task_runner_unittest.cc", |
| "public/cpp/perfetto/trace_event_data_source_unittest.cc", |
| "public/cpp/perfetto/traced_value_proto_writer_unittest.cc", |
| "public/cpp/stack_sampling/tracing_sampler_profiler_unittest.cc", |
| ] |
| |
| if (!is_android) { |
| sources += [ "tracing_service_unittest.cc" ] |
| } |
| |
| deps = [ |
| ":lib", |
| ":test_utils", |
| "//base", |
| "//base/test:test_support", |
| "//mojo/public/cpp/bindings", |
| "//services/tracing/public/cpp:buildflags", |
| "//services/tracing/public/cpp/background_tracing:unit_tests", |
| "//testing/gmock", |
| "//testing/gtest", |
| "//third_party/perfetto/include/perfetto/protozero:protozero", |
| "//third_party/perfetto/protos/perfetto/common:lite", |
| "//third_party/perfetto/protos/perfetto/trace:lite", |
| "//third_party/perfetto/protos/perfetto/trace/chrome:lite", |
| "//third_party/perfetto/protos/perfetto/trace/interned_data:lite", |
| "//third_party/perfetto/protos/perfetto/trace/track_event:lite", |
| ] |
| |
| if (is_posix) { |
| sources += [ "perfetto/system_perfetto_unittest.cc" ] |
| |
| if (can_unwind_with_cfi_table && is_official_build) { |
| sources += |
| [ "public/cpp/stack_sampling/stack_unwinder_android_unittest.cc" ] |
| deps += [ |
| ":jni_headers", |
| ":tracing_test_helper_java", |
| ] |
| } |
| } |
| |
| if (enable_loader_lock_sampling) { |
| sources += |
| [ "public/cpp/stack_sampling/loader_lock_sampler_win_unittest.cc" ] |
| |
| deps += [ ":loader_lock_sampler_test_strings" ] |
| data_deps = [ ":loader_lock_sampler_test_dll" ] |
| } |
| } |
| |
| if (is_android) { |
| generate_jni("jni_headers") { |
| testonly = true |
| sources = [ "android/test/src/org/chromium/tracing/UnwindTestHelper.java" ] |
| } |
| |
| android_library("tracing_test_helper_java") { |
| testonly = true |
| deps = [ "//base:base_java" ] |
| sources = [ "android/test/src/org/chromium/tracing/UnwindTestHelper.java" ] |
| } |
| } |
| |
| if (enable_loader_lock_sampling) { |
| source_set("loader_lock_sampler_test_strings") { |
| testonly = true |
| |
| sources = [ |
| "public/cpp/stack_sampling/loader_lock_sampler_test_strings.cc", |
| "public/cpp/stack_sampling/loader_lock_sampler_test_strings.h", |
| ] |
| } |
| |
| loadable_module("loader_lock_sampler_test_dll") { |
| testonly = true |
| |
| sources = [ "public/cpp/stack_sampling/loader_lock_sampler_test_dll.cc" ] |
| |
| deps = [ ":loader_lock_sampler_test_strings" ] |
| } |
| } |