blob: cc59dd2b17d59a2c5b19d89ab3f3e6d0f5a0f5b8 [file] [log] [blame]
Primiano Tucci4f9b6d72017-12-05 20:59:16 +00001# Copyright (C) 2017 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15import("../../gn/perfetto.gni")
16import("//build_overrides/build.gni")
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000017
18# Core tracing library, platform independent, no transport layer.
19source_set("tracing") {
20 public_deps = [
21 "../../include/perfetto/tracing/core",
Primiano Tucci6aa75572018-03-21 05:33:14 -070022 "../../protos/perfetto/common",
Primiano Tucci07e104d2018-04-03 20:45:35 +020023 "../../protos/perfetto/trace:minimal_lite",
Primiano Tucci20b760c2018-01-19 12:36:12 +000024 "../../protos/perfetto/trace:zero",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000025 ]
26 deps = [
27 "../../gn:default_deps",
Sami Kyostila32e0b542018-02-14 08:55:43 +000028 "../../gn:gtest_prod_config",
Primiano Tucci20b760c2018-01-19 12:36:12 +000029 "../../protos/perfetto/config",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000030 "../base",
31 ]
32 sources = [
Oystein Eftevaagab3b1b22018-03-08 16:27:06 -080033 "core/chrome_config.cc",
Primiano Tucci79f3f912018-03-02 12:00:31 +000034 "core/commit_data_request.cc",
Primiano Tucci114b6492017-12-11 23:09:45 +000035 "core/data_source_config.cc",
36 "core/data_source_descriptor.cc",
Hector Dearmana89cc572018-02-23 12:02:58 +000037 "core/ftrace_config.cc",
Primiano Tucci422caff2017-12-18 23:58:52 +010038 "core/id_allocator.cc",
39 "core/id_allocator.h",
Primiano Tuccidae35652018-03-29 18:32:02 +010040 "core/inode_file_config.cc",
Hector Dearman9a5a0e92018-03-27 17:52:24 +010041 "core/null_trace_writer.cc",
42 "core/null_trace_writer.h",
Sami Kyostila32e0b542018-02-14 08:55:43 +000043 "core/packet_stream_validator.cc",
44 "core/packet_stream_validator.h",
Primiano Tucci09db8272018-03-08 17:47:47 +000045 "core/patch_list.h",
Hector Dearman1b9c58a2018-03-29 18:45:06 +010046 "core/process_stats_config.cc",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000047 "core/service_impl.cc",
48 "core/service_impl.h",
Primiano Tuccif5d6d532017-12-19 00:59:34 +010049 "core/shared_memory_abi.cc",
Oystein Eftevaag6d0bc7f2018-01-13 12:21:55 -080050 "core/shared_memory_arbiter_impl.cc",
51 "core/shared_memory_arbiter_impl.h",
Primiano Tucci16d1d632018-02-22 10:16:22 +000052 "core/sliced_protobuf_input_stream.cc",
53 "core/sliced_protobuf_input_stream.h",
Lalit Maganti3f5705c2018-03-09 12:09:44 +000054 "core/test_config.cc",
Primiano Tucci5c599012018-03-01 17:52:07 +000055 "core/trace_buffer.cc",
56 "core/trace_buffer.h",
Primiano Tucci114b6492017-12-11 23:09:45 +000057 "core/trace_config.cc",
Primiano Tucci42e2de12017-12-07 16:46:04 +000058 "core/trace_packet.cc",
Primiano Tuccid7b59c42017-12-19 01:43:07 +010059 "core/trace_writer_impl.cc",
60 "core/trace_writer_impl.h",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000061 ]
62}
63
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000064# Posix specialization of the tracing library for Linux/Android/Mac. Provides
65# an IPC transport over a UNIX domain socket.
Sami Kyostilaebba0fe2017-12-19 14:01:52 +000066static_library("ipc") {
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000067 public_deps = [
68 "../../include/perfetto/tracing/core",
69 "../../include/perfetto/tracing/ipc",
70 ]
71 sources = [
Primiano Tuccidcbbf132017-12-11 23:17:53 +000072 "ipc/consumer/consumer_ipc_client_impl.cc",
73 "ipc/consumer/consumer_ipc_client_impl.h",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000074 "ipc/posix_shared_memory.cc",
75 "ipc/posix_shared_memory.h",
76 "ipc/producer/producer_ipc_client_impl.cc",
77 "ipc/producer/producer_ipc_client_impl.h",
Primiano Tucciaf429f92017-12-19 01:51:50 +010078 "ipc/service/consumer_ipc_service.cc",
79 "ipc/service/consumer_ipc_service.h",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000080 "ipc/service/producer_ipc_service.cc",
81 "ipc/service/producer_ipc_service.h",
82 "ipc/service/service_ipc_host_impl.cc",
83 "ipc/service/service_ipc_host_impl.h",
84 ]
85 deps = [
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000086 ":tracing",
87 "../../gn:default_deps",
Primiano Tucci20b760c2018-01-19 12:36:12 +000088 "../../protos/perfetto/ipc",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000089 "../base",
90 "../ipc",
91 ]
92}
93
Florian Mayer35ddfe22018-01-23 15:30:33 +000094# IPC transport: only consumer side
95# TODO(fmayer): Remove duplication between this and ipc.
96source_set("ipc_consumer") {
97 public_deps = [
98 "../../include/perfetto/tracing/core",
99 "../../include/perfetto/tracing/ipc",
100 ]
101 sources = [
102 "ipc/consumer/consumer_ipc_client_impl.cc",
103 "ipc/consumer/consumer_ipc_client_impl.h",
104 "ipc/posix_shared_memory.cc",
105 "ipc/posix_shared_memory.h",
106 ]
107 deps = [
108 ":tracing",
109 "../../gn:default_deps",
110 "../../protos/perfetto/ipc",
111 "../base",
112 ]
113}
114
Hector Dearman6cfec8a2018-03-14 16:54:09 +0000115source_set("unittests") {
Primiano Tucci4f9b6d72017-12-05 20:59:16 +0000116 testonly = true
117 deps = [
118 ":ipc",
119 ":tracing",
120 "../../gn:default_deps",
121 "../../gn:gtest_deps",
Primiano Tucci20b760c2018-01-19 12:36:12 +0000122 "../../protos/perfetto/trace:lite",
123 "../../protos/perfetto/trace:zero",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +0000124 "../base",
125 "../base:test_support",
126 ]
Primiano Tucci4f9b6d72017-12-05 20:59:16 +0000127 sources = [
Primiano Tucci422caff2017-12-18 23:58:52 +0100128 "core/id_allocator_unittest.cc",
Hector Dearman9a5a0e92018-03-27 17:52:24 +0100129 "core/null_trace_writer_unittest.cc",
Sami Kyostila32e0b542018-02-14 08:55:43 +0000130 "core/packet_stream_validator_unittest.cc",
Primiano Tucci09db8272018-03-08 17:47:47 +0000131 "core/patch_list_unittest.cc",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +0000132 "core/service_impl_unittest.cc",
Primiano Tuccif5d6d532017-12-19 00:59:34 +0100133 "core/shared_memory_abi_unittest.cc",
Oystein Eftevaag6d0bc7f2018-01-13 12:21:55 -0800134 "core/shared_memory_arbiter_impl_unittest.cc",
Primiano Tucci16d1d632018-02-22 10:16:22 +0000135 "core/sliced_protobuf_input_stream_unittest.cc",
Primiano Tucci5c599012018-03-01 17:52:07 +0000136 "core/trace_buffer_unittest.cc",
Primiano Tucci42e2de12017-12-07 16:46:04 +0000137 "core/trace_packet_unittest.cc",
Primiano Tuccid7b59c42017-12-19 01:43:07 +0100138 "core/trace_writer_impl_unittest.cc",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +0000139 "ipc/posix_shared_memory_unittest.cc",
Primiano Tuccid7b59c42017-12-19 01:43:07 +0100140 "test/aligned_buffer_test.cc",
141 "test/aligned_buffer_test.h",
Primiano Tucci5c599012018-03-01 17:52:07 +0000142 "test/fake_packet.cc",
143 "test/fake_packet.h",
Primiano Tuccidca727d2018-04-04 11:31:55 +0200144 "test/mock_consumer.cc",
145 "test/mock_consumer.h",
146 "test/mock_producer.cc",
147 "test/mock_producer.h",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +0000148 "test/test_shared_memory.cc",
149 "test/test_shared_memory.h",
Primiano Tucci53589332017-12-19 11:31:13 +0100150 "test/tracing_integration_test.cc",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +0000151 ]
152}
153
Primiano Tucci4f9b6d72017-12-05 20:59:16 +0000154if (!build_with_chromium) {
Primiano Tuccib03ba362017-12-06 09:47:41 +0000155 source_set("tracing_benchmarks") {
Primiano Tucci4f9b6d72017-12-05 20:59:16 +0000156 testonly = true
157 deps = [
158 "../../gn:default_deps",
159 "//buildtools:benchmark",
160 ]
161 sources = [
162 "test/hello_world_benchmark.cc",
163 ]
164 }
165}