blob: f1afddccd54a8bdabc6e7eb129fdd6e5679be30e [file] [log] [blame]
skvladcc91d282016-10-03 18:31:22 -07001# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
2#
3# Use of this source code is governed by a BSD-style license
4# that can be found in the LICENSE file in the root of the source
5# tree. An additional intellectual property rights grant can be found
6# in the file PATENTS. All contributing project authors may
7# be found in the AUTHORS file in the root of the source tree.
8
mbonadei9aa3f0a2017-01-24 06:58:22 -08009import("../webrtc.gni")
Dan Minor9c686132018-01-15 10:20:00 -050010if (!build_with_mozilla) {
11 import("//third_party/protobuf/proto_library.gni")
12}
skvladcc91d282016-10-03 18:31:22 -070013if (is_android) {
14 import("//build/config/android/config.gni")
15 import("//build/config/android/rules.gni")
16}
17
kjellander6ceab082016-10-28 05:44:03 -070018group("logging") {
Mirko Bonadei818d9102017-12-12 12:46:13 +010019 deps = [
kjellander6ceab082016-10-28 05:44:03 -070020 ":rtc_event_log_impl",
21 ]
22 if (rtc_enable_protobuf) {
Mirko Bonadei818d9102017-12-12 12:46:13 +010023 deps += [ ":rtc_event_log_parser" ]
kjellander6ceab082016-10-28 05:44:03 -070024 }
25}
26
skvladcc91d282016-10-03 18:31:22 -070027rtc_source_set("rtc_event_log_api") {
28 sources = [
Elad Alon652cc842017-10-02 11:27:52 +020029 "rtc_event_log/events/rtc_event.h",
Ilya Nikolaevskiya4259f62017-12-05 13:19:45 +010030 "rtc_event_log/events/rtc_event_alr_state.cc",
31 "rtc_event_log/events/rtc_event_alr_state.h",
Elad Alon652cc842017-10-02 11:27:52 +020032 "rtc_event_log/events/rtc_event_audio_network_adaptation.cc",
33 "rtc_event_log/events/rtc_event_audio_network_adaptation.h",
34 "rtc_event_log/events/rtc_event_audio_playout.cc",
35 "rtc_event_log/events/rtc_event_audio_playout.h",
36 "rtc_event_log/events/rtc_event_audio_receive_stream_config.cc",
37 "rtc_event_log/events/rtc_event_audio_receive_stream_config.h",
38 "rtc_event_log/events/rtc_event_audio_send_stream_config.cc",
39 "rtc_event_log/events/rtc_event_audio_send_stream_config.h",
40 "rtc_event_log/events/rtc_event_bwe_update_delay_based.cc",
41 "rtc_event_log/events/rtc_event_bwe_update_delay_based.h",
42 "rtc_event_log/events/rtc_event_bwe_update_loss_based.cc",
43 "rtc_event_log/events/rtc_event_bwe_update_loss_based.h",
Elad Alon652cc842017-10-02 11:27:52 +020044 "rtc_event_log/events/rtc_event_probe_cluster_created.cc",
45 "rtc_event_log/events/rtc_event_probe_cluster_created.h",
46 "rtc_event_log/events/rtc_event_probe_result_failure.cc",
47 "rtc_event_log/events/rtc_event_probe_result_failure.h",
48 "rtc_event_log/events/rtc_event_probe_result_success.cc",
49 "rtc_event_log/events/rtc_event_probe_result_success.h",
50 "rtc_event_log/events/rtc_event_rtcp_packet_incoming.cc",
51 "rtc_event_log/events/rtc_event_rtcp_packet_incoming.h",
52 "rtc_event_log/events/rtc_event_rtcp_packet_outgoing.cc",
53 "rtc_event_log/events/rtc_event_rtcp_packet_outgoing.h",
54 "rtc_event_log/events/rtc_event_rtp_packet_incoming.cc",
55 "rtc_event_log/events/rtc_event_rtp_packet_incoming.h",
56 "rtc_event_log/events/rtc_event_rtp_packet_outgoing.cc",
57 "rtc_event_log/events/rtc_event_rtp_packet_outgoing.h",
58 "rtc_event_log/events/rtc_event_video_receive_stream_config.cc",
59 "rtc_event_log/events/rtc_event_video_receive_stream_config.h",
60 "rtc_event_log/events/rtc_event_video_send_stream_config.cc",
61 "rtc_event_log/events/rtc_event_video_send_stream_config.h",
Elad Alon83ccca12017-10-04 13:18:26 +020062 "rtc_event_log/output/rtc_event_log_output_file.cc",
63 "rtc_event_log/output/rtc_event_log_output_file.h",
skvladcc91d282016-10-03 18:31:22 -070064 "rtc_event_log/rtc_event_log.h",
zhihuang38ede132017-06-15 12:52:32 -070065 "rtc_event_log/rtc_event_log_factory_interface.h",
eladalon4bb3b9c2017-09-11 07:25:26 -070066 "rtc_event_log/rtc_stream_config.cc",
67 "rtc_event_log/rtc_stream_config.h",
skvladcc91d282016-10-03 18:31:22 -070068 ]
Elad Alon83ccca12017-10-04 13:18:26 +020069
kjellander727ac1d2017-03-08 02:12:11 -080070 deps = [
perkj77cd58e2017-05-30 03:52:10 -070071 "..:webrtc_common",
Patrik Höglund3e113432017-12-15 14:40:10 +010072 "../:typedefs",
Bjorn Terelius440216f2017-09-29 21:01:42 +020073 "../api:array_view",
Elad Alon80810732017-10-06 13:07:32 +020074 "../api:libjingle_logging_api",
Stefan Holmer1acbd682017-09-01 15:29:28 +020075 "../api:libjingle_peerconnection_api",
aleloi440b6d92017-08-22 05:43:23 -070076 "../call:video_stream_api",
Elad Alon078a7812017-10-02 13:33:31 +020077 "../modules/audio_coding:audio_network_adaptor_config",
78 "../modules/remote_bitrate_estimator:remote_bitrate_estimator",
79 "../modules/rtp_rtcp:rtp_rtcp_format",
Patrik Höglunda8005cf2017-12-13 16:05:42 +010080 "../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -070081 "../rtc_base:rtc_base_approved",
Patrik Höglunda8005cf2017-12-13 16:05:42 +010082 "../system_wrappers",
kjellander727ac1d2017-03-08 02:12:11 -080083 ]
Elad Alon83ccca12017-10-04 13:18:26 +020084
85 # TODO(eladalon): Remove this.
86 if (!build_with_chromium && is_clang) {
87 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
88 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
89 }
skvladcc91d282016-10-03 18:31:22 -070090}
91
92rtc_static_library("rtc_event_log_impl") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000093 visibility = [ "*" ]
skvladcc91d282016-10-03 18:31:22 -070094 sources = [
Elad Alon1d87b0e2017-10-03 15:01:03 +020095 "rtc_event_log/encoder/rtc_event_log_encoder.h",
96 "rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc",
97 "rtc_event_log/encoder/rtc_event_log_encoder_legacy.h",
skvladcc91d282016-10-03 18:31:22 -070098 "rtc_event_log/rtc_event_log.cc",
zhihuang38ede132017-06-15 12:52:32 -070099 "rtc_event_log/rtc_event_log_factory.cc",
100 "rtc_event_log/rtc_event_log_factory.h",
skvladcc91d282016-10-03 18:31:22 -0700101 ]
102
103 defines = []
104
105 deps = [
106 ":rtc_event_log_api",
107 "..:webrtc_common",
minyue4b7c9522017-01-24 04:54:59 -0800108 "../modules/audio_coding:audio_network_adaptor",
michaelt97653702017-04-11 00:49:44 -0700109 "../modules/remote_bitrate_estimator:remote_bitrate_estimator",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100110 "../modules/rtp_rtcp:rtp_rtcp_format",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100111 "../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700112 "../rtc_base:protobuf_utils",
113 "../rtc_base:rtc_base_approved",
eladalon248fd4f2017-09-06 05:18:15 -0700114 "../rtc_base:rtc_task_queue",
115 "../rtc_base:sequenced_task_checker",
kjellander727ac1d2017-03-08 02:12:11 -0800116 "../system_wrappers",
skvladcc91d282016-10-03 18:31:22 -0700117 ]
118
119 if (rtc_enable_protobuf) {
120 defines += [ "ENABLE_RTC_EVENT_LOG" ]
121 deps += [ ":rtc_event_log_proto" ]
122 }
Elad Alon83ccca12017-10-04 13:18:26 +0200123
124 # TODO(eladalon): Remove this.
kjellandere40a7ee2016-10-16 23:56:12 -0700125 if (!build_with_chromium && is_clang) {
126 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
skvladcc91d282016-10-03 18:31:22 -0700127 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
128 }
129}
130
skvladcc91d282016-10-03 18:31:22 -0700131if (rtc_enable_protobuf) {
132 proto_library("rtc_event_log_proto") {
133 sources = [
134 "rtc_event_log/rtc_event_log.proto",
135 ]
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200136 proto_out_dir = "logging/rtc_event_log"
skvladcc91d282016-10-03 18:31:22 -0700137 }
skvladcc91d282016-10-03 18:31:22 -0700138
Mirko Bonadeib3c210f2017-12-15 17:12:42 +0100139 proto_library("rtc_event_log2_proto") {
140 sources = [
141 "rtc_event_log/rtc_event_log2.proto",
142 ]
143 proto_out_dir = "logging/rtc_event_log"
144 }
145
skvladcc91d282016-10-03 18:31:22 -0700146 rtc_static_library("rtc_event_log_parser") {
147 sources = [
148 "rtc_event_log/rtc_event_log_parser.cc",
149 "rtc_event_log/rtc_event_log_parser.h",
150 ]
151
Mirko Bonadei818d9102017-12-12 12:46:13 +0100152 deps = [
Mirko Bonadeib3c210f2017-12-15 17:12:42 +0100153 ":rtc_event_log2_proto",
kjellander727ac1d2017-03-08 02:12:11 -0800154 ":rtc_event_log_api",
skvladcc91d282016-10-03 18:31:22 -0700155 ":rtc_event_log_proto",
156 "..:webrtc_common",
Mirko Bonadei818d9102017-12-12 12:46:13 +0100157 "../call:video_stream_api",
michaeltcde46b72017-04-06 05:59:10 -0700158 "../modules/audio_coding:audio_network_adaptor",
michaelt97653702017-04-11 00:49:44 -0700159 "../modules/remote_bitrate_estimator:remote_bitrate_estimator",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100160 "../modules/rtp_rtcp",
Mirko Bonadei818d9102017-12-12 12:46:13 +0100161 "../modules/rtp_rtcp:rtp_rtcp_format",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100162 "../rtc_base:checks",
Mirko Bonadei818d9102017-12-12 12:46:13 +0100163 "../rtc_base:protobuf_utils",
164 "../rtc_base:rtc_base_approved",
kjellander727ac1d2017-03-08 02:12:11 -0800165 "../system_wrappers",
skvladcc91d282016-10-03 18:31:22 -0700166 ]
167
kjellandere40a7ee2016-10-16 23:56:12 -0700168 if (!build_with_chromium && is_clang) {
169 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
skvladcc91d282016-10-03 18:31:22 -0700170 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
171 }
172 }
ehmaldonado1fd08c12017-01-17 02:37:34 -0800173
174 if (rtc_include_tests) {
175 rtc_source_set("rtc_event_log_tests") {
176 testonly = true
Elad Alon1d87b0e2017-10-03 15:01:03 +0200177 assert(rtc_enable_protobuf)
178 defines = [ "ENABLE_RTC_EVENT_LOG" ]
Elad Alon8233bfe2017-10-05 15:27:29 +0200179 if (rtc_use_memcheck) {
180 defines += [ "WEBRTC_USE_MEMCHECK" ]
181 }
ehmaldonado1fd08c12017-01-17 02:37:34 -0800182 sources = [
Elad Alon1d87b0e2017-10-03 15:01:03 +0200183 "rtc_event_log/encoder/rtc_event_log_encoder_unittest.cc",
Elad Alon83ccca12017-10-04 13:18:26 +0200184 "rtc_event_log/output/rtc_event_log_output_file_unittest.cc",
ehmaldonado1fd08c12017-01-17 02:37:34 -0800185 "rtc_event_log/rtc_event_log_unittest.cc",
186 "rtc_event_log/rtc_event_log_unittest_helper.cc",
eladalonb5c319a2017-08-17 08:32:39 -0700187 "rtc_event_log/rtc_event_log_unittest_helper.h",
ehmaldonado1fd08c12017-01-17 02:37:34 -0800188 ]
189 deps = [
Mirko Bonadei818d9102017-12-12 12:46:13 +0100190 ":rtc_event_log_api",
ehmaldonado1fd08c12017-01-17 02:37:34 -0800191 ":rtc_event_log_impl",
192 ":rtc_event_log_parser",
Mirko Bonadei818d9102017-12-12 12:46:13 +0100193 ":rtc_event_log_proto",
Mirko Bonadeia0e1a552017-12-04 10:50:51 +0100194 "../api:libjingle_peerconnection_api",
ehmaldonado1fd08c12017-01-17 02:37:34 -0800195 "../call",
Mirko Bonadeia0e1a552017-12-04 10:50:51 +0100196 "../call:call_interfaces",
michaeltcde46b72017-04-06 05:59:10 -0700197 "../modules/audio_coding:audio_network_adaptor",
michaelt97653702017-04-11 00:49:44 -0700198 "../modules/remote_bitrate_estimator:remote_bitrate_estimator",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100199 "../modules/rtp_rtcp:rtp_rtcp_format",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100200 "../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700201 "../rtc_base:rtc_base_approved",
202 "../rtc_base:rtc_base_tests_utils",
ehmaldonado1fd08c12017-01-17 02:37:34 -0800203 "../system_wrappers:metrics_default",
kjellander727ac1d2017-03-08 02:12:11 -0800204 "../test:test_support",
ehmaldonado1fd08c12017-01-17 02:37:34 -0800205 "//testing/gmock",
206 "//testing/gtest",
207 ]
208 if (!build_with_chromium && is_clang) {
209 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
210 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
211 }
212 }
ivoc54b6e982017-02-08 00:28:09 -0800213 rtc_test("rtc_event_log2rtp_dump") {
214 testonly = true
215 sources = [
216 "rtc_event_log/rtc_event_log2rtp_dump.cc",
217 ]
218 deps = [
219 ":rtc_event_log_api",
220 ":rtc_event_log_impl",
221 ":rtc_event_log_parser",
Mirko Bonadei818d9102017-12-12 12:46:13 +0100222 "../modules/rtp_rtcp",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100223 "../modules/rtp_rtcp:rtp_rtcp_format",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100224 "../rtc_base:checks",
Mirko Bonadei818d9102017-12-12 12:46:13 +0100225 "../rtc_base:protobuf_utils",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700226 "../rtc_base:rtc_base_approved",
ivoc54b6e982017-02-08 00:28:09 -0800227 "../system_wrappers:field_trial_default",
228 "../system_wrappers:metrics_default",
229 "../test:rtp_test_utils",
ivoc54b6e982017-02-08 00:28:09 -0800230 ]
231 if (!build_with_chromium && is_clang) {
232 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
233 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
234 }
235 }
ehmaldonado1fd08c12017-01-17 02:37:34 -0800236 }
Patrik Höglund731082c2018-01-03 09:08:20 +0100237
tereliusd4ed7f52017-02-08 04:22:53 -0800238 if (rtc_include_tests) {
239 rtc_executable("rtc_event_log2text") {
240 testonly = true
241 sources = [
242 "rtc_event_log/rtc_event_log2text.cc",
243 ]
244 deps = [
245 ":rtc_event_log_api",
246 ":rtc_event_log_impl",
247 ":rtc_event_log_parser",
Mirko Bonadei818d9102017-12-12 12:46:13 +0100248 "../:webrtc_common",
Stefan Holmer1acbd682017-09-01 15:29:28 +0200249 "../call:video_stream_api",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100250 "../modules/rtp_rtcp:rtp_rtcp_format",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100251 "../rtc_base:checks",
Mirko Bonadei818d9102017-12-12 12:46:13 +0100252 "../rtc_base:protobuf_utils",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700253 "../rtc_base:rtc_base_approved",
tereliusbb46b952017-02-08 09:37:30 -0800254
255 # TODO(kwiberg): Remove this dependency.
kwiberg087bd342017-02-10 08:15:44 -0800256 "../api/audio_codecs:audio_codecs_api",
Elad Alona96fd7f2017-09-15 16:13:21 +0200257 "../modules/audio_coding:audio_network_adaptor_config",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100258 "../modules/rtp_rtcp",
tereliusd4ed7f52017-02-08 04:22:53 -0800259 ]
260 if (!build_with_chromium && is_clang) {
261 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
262 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
263 }
264 }
265 }
tereliusee37e862017-04-28 07:48:17 -0700266 if (rtc_include_tests) {
267 rtc_executable("rtc_event_log2stats") {
268 testonly = true
269 sources = [
270 "rtc_event_log/rtc_event_log2stats.cc",
271 ]
272 deps = [
273 ":rtc_event_log_api",
274 ":rtc_event_log_impl",
275 ":rtc_event_log_proto",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100276 "../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700277 "../rtc_base:rtc_base_approved",
tereliusee37e862017-04-28 07:48:17 -0700278 ]
279 if (!build_with_chromium && is_clang) {
280 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
281 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
282 }
283 }
284 }
skvladcc91d282016-10-03 18:31:22 -0700285}
Patrik Höglund731082c2018-01-03 09:08:20 +0100286
287if (rtc_include_tests) {
288 rtc_source_set("mocks") {
289 testonly = true
290 sources = [
291 "rtc_event_log/mock/mock_rtc_event_log.h",
292 ]
293 deps = [
294 ":rtc_event_log_api",
295 "../../test:test_support",
296 ]
297 }
298}