blob: 43866909548411edd5536535f9a44efade8e7cbc [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 Tuccic2eb5102018-05-15 10:40:01 +010023 "../../protos/perfetto/trace:minimal_lite",
Oystein Eftevaag4d0f6c82018-04-30 14:19:59 -070024 "../../protos/perfetto/trace:trusted_lite",
Primiano Tucci20b760c2018-01-19 12:36:12 +000025 "../../protos/perfetto/trace:zero",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000026 ]
27 deps = [
28 "../../gn:default_deps",
Sami Kyostila32e0b542018-02-14 08:55:43 +000029 "../../gn:gtest_prod_config",
Primiano Tucci20b760c2018-01-19 12:36:12 +000030 "../../protos/perfetto/config",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000031 "../base",
Primiano Tuccic2eb5102018-05-15 10:40:01 +010032 "../protozero",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000033 ]
34 sources = [
Oystein Eftevaagab3b1b22018-03-08 16:27:06 -080035 "core/chrome_config.cc",
Primiano Tucci79f3f912018-03-02 12:00:31 +000036 "core/commit_data_request.cc",
Primiano Tucci114b6492017-12-11 23:09:45 +000037 "core/data_source_config.cc",
38 "core/data_source_descriptor.cc",
Hector Dearmana89cc572018-02-23 12:02:58 +000039 "core/ftrace_config.cc",
Primiano Tucci422caff2017-12-18 23:58:52 +010040 "core/id_allocator.cc",
41 "core/id_allocator.h",
Primiano Tuccidae35652018-03-29 18:32:02 +010042 "core/inode_file_config.cc",
Hector Dearman9a5a0e92018-03-27 17:52:24 +010043 "core/null_trace_writer.cc",
44 "core/null_trace_writer.h",
Sami Kyostila32e0b542018-02-14 08:55:43 +000045 "core/packet_stream_validator.cc",
46 "core/packet_stream_validator.h",
Primiano Tucci09db8272018-03-08 17:47:47 +000047 "core/patch_list.h",
Hector Dearman1b9c58a2018-03-29 18:45:06 +010048 "core/process_stats_config.cc",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000049 "core/service_impl.cc",
50 "core/service_impl.h",
Primiano Tuccif5d6d532017-12-19 00:59:34 +010051 "core/shared_memory_abi.cc",
Oystein Eftevaag6d0bc7f2018-01-13 12:21:55 -080052 "core/shared_memory_arbiter_impl.cc",
53 "core/shared_memory_arbiter_impl.h",
Primiano Tucci16d1d632018-02-22 10:16:22 +000054 "core/sliced_protobuf_input_stream.cc",
55 "core/sliced_protobuf_input_stream.h",
Lalit Maganti3f5705c2018-03-09 12:09:44 +000056 "core/test_config.cc",
Primiano Tucci5c599012018-03-01 17:52:07 +000057 "core/trace_buffer.cc",
58 "core/trace_buffer.h",
Primiano Tucci114b6492017-12-11 23:09:45 +000059 "core/trace_config.cc",
Primiano Tucci42e2de12017-12-07 16:46:04 +000060 "core/trace_packet.cc",
Primiano Tuccid7b59c42017-12-19 01:43:07 +010061 "core/trace_writer_impl.cc",
62 "core/trace_writer_impl.h",
Primiano Tucci3cbb10a2018-04-10 17:52:40 +010063 "core/virtual_destructors.cc",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000064 ]
65}
66
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000067# Posix specialization of the tracing library for Linux/Android/Mac. Provides
68# an IPC transport over a UNIX domain socket.
Sami Kyostilaebba0fe2017-12-19 14:01:52 +000069static_library("ipc") {
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000070 public_deps = [
71 "../../include/perfetto/tracing/core",
72 "../../include/perfetto/tracing/ipc",
73 ]
74 sources = [
Primiano Tuccidcbbf132017-12-11 23:17:53 +000075 "ipc/consumer/consumer_ipc_client_impl.cc",
76 "ipc/consumer/consumer_ipc_client_impl.h",
Florian Mayerc29e0d32018-04-04 15:55:46 +010077 "ipc/default_socket.cc",
78 "ipc/default_socket.h",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000079 "ipc/posix_shared_memory.cc",
80 "ipc/posix_shared_memory.h",
81 "ipc/producer/producer_ipc_client_impl.cc",
82 "ipc/producer/producer_ipc_client_impl.h",
Primiano Tucciaf429f92017-12-19 01:51:50 +010083 "ipc/service/consumer_ipc_service.cc",
84 "ipc/service/consumer_ipc_service.h",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000085 "ipc/service/producer_ipc_service.cc",
86 "ipc/service/producer_ipc_service.h",
87 "ipc/service/service_ipc_host_impl.cc",
88 "ipc/service/service_ipc_host_impl.h",
89 ]
90 deps = [
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000091 ":tracing",
92 "../../gn:default_deps",
Primiano Tucci20b760c2018-01-19 12:36:12 +000093 "../../protos/perfetto/ipc",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000094 "../base",
95 "../ipc",
96 ]
97}
98
Florian Mayer35ddfe22018-01-23 15:30:33 +000099# IPC transport: only consumer side
100# TODO(fmayer): Remove duplication between this and ipc.
101source_set("ipc_consumer") {
102 public_deps = [
103 "../../include/perfetto/tracing/core",
104 "../../include/perfetto/tracing/ipc",
105 ]
106 sources = [
107 "ipc/consumer/consumer_ipc_client_impl.cc",
108 "ipc/consumer/consumer_ipc_client_impl.h",
Florian Mayerc29e0d32018-04-04 15:55:46 +0100109 "ipc/default_socket.cc",
110 "ipc/default_socket.h",
Florian Mayer35ddfe22018-01-23 15:30:33 +0000111 "ipc/posix_shared_memory.cc",
112 "ipc/posix_shared_memory.h",
113 ]
114 deps = [
115 ":tracing",
116 "../../gn:default_deps",
117 "../../protos/perfetto/ipc",
118 "../base",
Primiano Tuccic2eb5102018-05-15 10:40:01 +0100119 "../ipc",
Florian Mayer35ddfe22018-01-23 15:30:33 +0000120 ]
121}
122
Hector Dearman6cfec8a2018-03-14 16:54:09 +0000123source_set("unittests") {
Primiano Tucci4f9b6d72017-12-05 20:59:16 +0000124 testonly = true
125 deps = [
126 ":ipc",
Hector Dearman3afb1e02018-04-27 16:46:52 +0100127 ":test_support",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +0000128 ":tracing",
129 "../../gn:default_deps",
130 "../../gn:gtest_deps",
Primiano Tuccic2eb5102018-05-15 10:40:01 +0100131 "../../protos/perfetto/config",
Primiano Tucci20b760c2018-01-19 12:36:12 +0000132 "../../protos/perfetto/trace:lite",
133 "../../protos/perfetto/trace:zero",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +0000134 "../base",
135 "../base:test_support",
136 ]
Primiano Tucci4f9b6d72017-12-05 20:59:16 +0000137 sources = [
Primiano Tucci422caff2017-12-18 23:58:52 +0100138 "core/id_allocator_unittest.cc",
Hector Dearman9a5a0e92018-03-27 17:52:24 +0100139 "core/null_trace_writer_unittest.cc",
Sami Kyostila32e0b542018-02-14 08:55:43 +0000140 "core/packet_stream_validator_unittest.cc",
Primiano Tucci09db8272018-03-08 17:47:47 +0000141 "core/patch_list_unittest.cc",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +0000142 "core/service_impl_unittest.cc",
Primiano Tuccif5d6d532017-12-19 00:59:34 +0100143 "core/shared_memory_abi_unittest.cc",
Oystein Eftevaag6d0bc7f2018-01-13 12:21:55 -0800144 "core/shared_memory_arbiter_impl_unittest.cc",
Primiano Tucci16d1d632018-02-22 10:16:22 +0000145 "core/sliced_protobuf_input_stream_unittest.cc",
Primiano Tucci5c599012018-03-01 17:52:07 +0000146 "core/trace_buffer_unittest.cc",
Primiano Tucci42e2de12017-12-07 16:46:04 +0000147 "core/trace_packet_unittest.cc",
Primiano Tuccid7b59c42017-12-19 01:43:07 +0100148 "core/trace_writer_impl_unittest.cc",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +0000149 "ipc/posix_shared_memory_unittest.cc",
Primiano Tuccid7b59c42017-12-19 01:43:07 +0100150 "test/aligned_buffer_test.cc",
151 "test/aligned_buffer_test.h",
Primiano Tucci5c599012018-03-01 17:52:07 +0000152 "test/fake_packet.cc",
153 "test/fake_packet.h",
Primiano Tuccidca727d2018-04-04 11:31:55 +0200154 "test/mock_consumer.cc",
155 "test/mock_consumer.h",
156 "test/mock_producer.cc",
157 "test/mock_producer.h",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +0000158 "test/test_shared_memory.cc",
159 "test/test_shared_memory.h",
Primiano Tucci53589332017-12-19 11:31:13 +0100160 "test/tracing_integration_test.cc",
Primiano Tucci4f9b6d72017-12-05 20:59:16 +0000161 ]
162}
163
Hector Dearman3afb1e02018-04-27 16:46:52 +0100164source_set("test_support") {
165 testonly = true
166 public_deps = [
Primiano Tuccic2eb5102018-05-15 10:40:01 +0100167 "../../include/perfetto/tracing/core",
Hector Dearman3afb1e02018-04-27 16:46:52 +0100168 "../../protos/perfetto/trace:lite",
169 "../../protos/perfetto/trace:zero",
170 "../protozero:test_support",
171 ]
172 sources = [
173 "core/trace_writer_for_testing.cc",
174 "core/trace_writer_for_testing.h",
175 ]
176}
177
Primiano Tucci4f9b6d72017-12-05 20:59:16 +0000178if (!build_with_chromium) {
Primiano Tuccib03ba362017-12-06 09:47:41 +0000179 source_set("tracing_benchmarks") {
Primiano Tucci4f9b6d72017-12-05 20:59:16 +0000180 testonly = true
181 deps = [
182 "../../gn:default_deps",
183 "//buildtools:benchmark",
184 ]
185 sources = [
186 "test/hello_world_benchmark.cc",
187 ]
188 }
189}