blob: 22a35078edf017cc5429a6bea9f8bca3ef5da651 [file] [log] [blame]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
Henrik Kjellander73e21802017-06-20 08:38:58 +02002#
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
Henrik Kjellanderc0362762017-06-29 08:03:04 +02009import("//build/config/crypto.gni")
10import("//build/config/ui.gni")
Henrik Kjellander73e21802017-06-20 08:38:58 +020011import("../webrtc.gni")
12
13if (is_android) {
14 import("//build/config/android/config.gni")
15 import("//build/config/android/rules.gni")
16}
17
Henrik Kjellanderc0362762017-06-29 08:03:04 +020018config("rtc_base_chromium_config") {
19 defines = [ "NO_MAIN_THREAD_WRAPPING" ]
20}
21
22config("rtc_base_all_dependent_config") {
23 if (is_ios) {
24 libs = [
25 "CFNetwork.framework",
Jiawei Ouc0216b82018-02-03 12:24:24 -080026 "Foundation.framework",
Henrik Kjellanderc0362762017-06-29 08:03:04 +020027 "Security.framework",
28 "SystemConfiguration.framework",
29 "UIKit.framework",
30 ]
31 }
32 if (is_mac) {
33 libs = [
34 "Cocoa.framework",
35 "Foundation.framework",
36 "IOKit.framework",
37 "Security.framework",
38 "SystemConfiguration.framework",
39 ]
40 }
41}
42
Dan Minor9cdd8762018-01-16 10:40:39 -050043if (!rtc_build_ssl) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +020044 config("external_ssl_library") {
45 assert(rtc_ssl_root != "",
46 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
47 include_dirs = [ rtc_ssl_root ]
48 }
49}
50
Oleh Prypindd214742018-07-17 13:49:46 +020051rtc_source_set("protobuf_utils") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000052 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +020053 sources = [
54 "protobuf_utils.h",
55 ]
56 if (rtc_enable_protobuf) {
Mirko Bonadeid8661a02018-08-13 15:04:25 +020057 public_configs = [ "//third_party/protobuf:protobuf_config" ]
58 deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +020059 "//third_party/protobuf:protobuf_lite",
60 ]
61 }
62}
63
Oleh Prypindd214742018-07-17 13:49:46 +020064rtc_source_set("compile_assert_c") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +020065 sources = [
66 "compile_assert_c.h",
67 ]
68}
69
mbonadeibc378472017-09-11 03:43:34 -070070rtc_source_set("rtc_base_approved") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000071 visibility = [ "*" ]
mbonadeibc378472017-09-11 03:43:34 -070072 public_deps = [
Tommi8d2c5a82018-03-19 11:12:48 +010073 ":atomicops",
74 ":criticalsection",
75 ":logging",
76 ":macromagic",
77 ":platform_thread",
78 ":platform_thread_types",
79 ":ptr_util",
80 ":refcount",
mbonadeibc378472017-09-11 03:43:34 -070081 ":rtc_base_approved_generic",
Tommi8d2c5a82018-03-19 11:12:48 +010082 ":rtc_event",
83 ":safe_conversions",
84 ":stringutils",
85 ":thread_checker",
86 ":timeutils",
mbonadeibc378472017-09-11 03:43:34 -070087 ]
mbonadeibc378472017-09-11 03:43:34 -070088}
89
Tommi8d2c5a82018-03-19 11:12:48 +010090rtc_source_set("macromagic") {
Mirko Bonadei2ad8c432018-08-09 10:54:40 +020091 # TODO(bugs.webrtc.org/9606): This should not be public.
92 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +010093 sources = [
94 "arraysize.h",
Tommi8d2c5a82018-03-19 11:12:48 +010095 "constructormagic.h",
96 "format_macros.h",
97 "stringize_macros.h",
98 "thread_annotations.h",
99 ]
Niels Möllera12c42a2018-07-25 16:05:48 +0200100 deps = [
101 "system:arch",
102 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100103}
104
105rtc_source_set("platform_thread_types") {
106 sources = [
107 "platform_thread_types.cc",
108 "platform_thread_types.h",
109 ]
110}
111
112rtc_source_set("ptr_util") {
Mirko Bonadeica14a3a2018-08-09 09:47:12 +0200113 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100114 sources = [
Tommi8d2c5a82018-03-19 11:12:48 +0100115 "scoped_ref_ptr.h",
116 ]
117}
118
119rtc_source_set("refcount") {
Mirko Bonadeica14a3a2018-08-09 09:47:12 +0200120 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100121 sources = [
122 "refcount.h",
123 "refcountedobject.h",
124 "refcounter.h",
125 ]
126 deps = [
127 ":atomicops",
128 ":macromagic",
129 ]
130}
131
132rtc_source_set("criticalsection") {
133 sources = [
134 "criticalsection.cc",
135 "criticalsection.h",
136 ]
137 deps = [
138 ":atomicops",
139 ":checks",
140 ":macromagic",
141 ":platform_thread_types",
Niels Möllera12c42a2018-07-25 16:05:48 +0200142 "system:unused",
Tommi8d2c5a82018-03-19 11:12:48 +0100143 ]
144}
145
146rtc_source_set("platform_thread") {
147 visibility = [
148 ":rtc_base_approved",
149 ":rtc_base_approved_generic",
150 ":rtc_task_queue_libevent",
151 ":rtc_task_queue_win",
152 ":sequenced_task_checker",
153 ]
154 sources = [
155 "platform_thread.cc",
156 "platform_thread.h",
157 ]
158 deps = [
159 ":atomicops",
160 ":checks",
161 ":macromagic",
162 ":platform_thread_types",
163 ":rtc_event",
164 ":thread_checker",
165 ":timeutils",
Tommi8d2c5a82018-03-19 11:12:48 +0100166 ]
167}
168
169rtc_source_set("rtc_event") {
John Budorick6c9a7862018-03-26 06:23:34 -0700170 deps = [
171 ":checks",
172 ":macromagic",
173 ]
174
Tommi8d2c5a82018-03-19 11:12:48 +0100175 if (build_with_chromium) {
John Budorick6c9a7862018-03-26 06:23:34 -0700176 # Dependency on chromium's waitable_event (in //base).
177 deps += [ "//base:base" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100178 sources = [
179 "../../webrtc_overrides/rtc_base/event.cc",
180 "../../webrtc_overrides/rtc_base/event.h",
181 ]
182 } else {
183 sources = [
184 "event.cc",
185 "event.h",
186 ]
187 }
Tommi8d2c5a82018-03-19 11:12:48 +0100188}
189
190rtc_source_set("logging") {
Mirko Bonadei2ad8c432018-08-09 10:54:40 +0200191 visibility = [ "*" ]
Patrik Höglund77301932018-10-09 15:09:51 +0200192 libs = []
Tommi8d2c5a82018-03-19 11:12:48 +0100193 deps = [
194 ":criticalsection",
195 ":macromagic",
196 ":platform_thread_types",
197 ":stringutils",
198 ":timeutils",
Jonas Olssonf2ce37c2018-09-12 15:32:47 +0200199 "//third_party/abseil-cpp/absl/strings",
Tommi8d2c5a82018-03-19 11:12:48 +0100200 ]
201
202 if (build_with_chromium) {
203 # Dependency on chromium's logging (in //base).
204 deps += [ "//base:base" ]
205 sources = [
206 "../../webrtc_overrides/rtc_base/logging.cc",
207 "../../webrtc_overrides/rtc_base/logging.h",
208 ]
209 } else {
Mirko Bonadei96ede162018-09-06 13:45:44 +0200210 configs += [
211 "..:no_exit_time_destructors",
212 "..:no_global_constructors",
213 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100214 sources = [
215 "logging.cc",
216 "logging.h",
217 ]
Karl Wibergcefc4652018-05-23 23:20:38 +0200218 deps += [ "system:inline" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100219
Mirko Bonadei99a70a22018-10-09 16:45:14 +0200220 if (is_mac) {
221 deps += [ ":logging_mac" ]
222 }
223
Tommi8d2c5a82018-03-19 11:12:48 +0100224 # logging.h needs the deprecation header while downstream projects are
225 # removing code that depends on logging implementation details.
226 deps += [ ":deprecation" ]
Patrik Höglund77301932018-10-09 15:09:51 +0200227
228 if (is_android) {
229 libs += [ "log" ]
230 }
Tommi8d2c5a82018-03-19 11:12:48 +0100231 }
232}
233
234rtc_source_set("thread_checker") {
235 sources = [
236 "thread_checker.h",
237 "thread_checker_impl.cc",
238 "thread_checker_impl.h",
239 ]
240 deps = [
241 ":checks",
242 ":criticalsection",
243 ":macromagic",
244 ":platform_thread_types",
Tommi8d2c5a82018-03-19 11:12:48 +0100245 ]
246}
247
248rtc_source_set("atomicops") {
249 sources = [
250 "atomicops.h",
251 ]
252}
253
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100254rtc_source_set("checks") {
Mirko Bonadei2ad8c432018-08-09 10:54:40 +0200255 # TODO(bugs.webrtc.org/9607): This should not be public.
256 visibility = [ "*" ]
Patrik Höglund77301932018-10-09 15:09:51 +0200257 libs = []
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100258 sources = [
259 "checks.cc",
260 "checks.h",
261 ]
262 deps = [
263 ":safe_compare",
Jonas Olssonf8e5c112018-06-14 13:14:22 +0200264 "system:inline",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100265 ]
Patrik Höglund77301932018-10-09 15:09:51 +0200266 if (is_android) {
267 libs += [ "log" ]
268 }
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100269}
270
Patrik Höglund3e113432017-12-15 14:40:10 +0100271rtc_source_set("rate_limiter") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100272 sources = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100273 "rate_limiter.cc",
274 "rate_limiter.h",
275 ]
276 deps = [
277 ":rtc_base_approved",
278 "../system_wrappers",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100279 ]
280}
281
282rtc_source_set("sanitizer") {
283 sources = [
284 "sanitizer.h",
285 ]
286}
287
288rtc_source_set("safe_compare") {
289 sources = [
290 "numerics/safe_compare.h",
291 ]
292 deps = [
293 ":type_traits",
294 ]
295}
296
Karl Wiberg12edf4c2018-03-07 14:18:56 +0100297rtc_source_set("safe_minmax") {
298 sources = [
299 "numerics/safe_minmax.h",
300 ]
301 deps = [
302 ":checks",
303 ":safe_compare",
304 ":type_traits",
305 ]
306}
307
Tommi8d2c5a82018-03-19 11:12:48 +0100308rtc_source_set("safe_conversions") {
309 sources = [
310 "numerics/safe_conversions.h",
311 "numerics/safe_conversions_impl.h",
312 ]
313 deps = [
314 ":checks",
315 ]
316}
317
318rtc_source_set("timeutils") {
Mirko Bonadei2ad8c432018-08-09 10:54:40 +0200319 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100320 sources = [
321 "timeutils.cc",
322 "timeutils.h",
323 ]
324 deps = [
325 ":checks",
326 ":safe_conversions",
Jonas Olsson366a50c2018-09-06 13:41:30 +0200327 ":stringutils",
Tommi8d2c5a82018-03-19 11:12:48 +0100328 ]
329}
330
Patrik Höglund3e113432017-12-15 14:40:10 +0100331rtc_source_set("stringutils") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100332 sources = [
Jonas Olsson6b1985d2018-07-05 11:59:48 +0200333 "string_to_number.cc",
334 "string_to_number.h",
Tommi8d2c5a82018-03-19 11:12:48 +0100335 "stringencode.cc",
336 "stringencode.h",
Karl Wiberg881f1682018-03-08 15:03:23 +0100337 "strings/string_builder.cc",
Tommifef05002018-02-27 13:51:08 +0100338 "strings/string_builder.h",
Patrik Höglund3e113432017-12-15 14:40:10 +0100339 "stringutils.cc",
340 "stringutils.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100341 ]
342 deps = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100343 ":checks",
Jonas Olsson6b1985d2018-07-05 11:59:48 +0200344 ":macromagic",
Karl Wiberg881f1682018-03-08 15:03:23 +0100345 ":safe_minmax",
346 "../api:array_view",
Jonas Olsson88e18482018-09-03 10:15:08 +0200347 "//third_party/abseil-cpp/absl/strings:strings",
Jonas Olsson6b1985d2018-07-05 11:59:48 +0200348 "//third_party/abseil-cpp/absl/types:optional",
Patrik Höglund3e113432017-12-15 14:40:10 +0100349 ]
350}
351
Jonas Olsson74395342018-04-03 12:22:07 +0200352rtc_source_set("audio_format_to_string") {
353 sources = [
354 "strings/audio_format_to_string.cc",
355 "strings/audio_format_to_string.h",
356 ]
357 deps = [
358 ":stringutils",
359 "../api/audio_codecs:audio_codecs_api",
360 ]
361}
362
Patrik Höglund3e113432017-12-15 14:40:10 +0100363rtc_source_set("type_traits") {
364 sources = [
365 "type_traits.h",
366 ]
367}
368
369rtc_source_set("deprecation") {
370 sources = [
371 "deprecation.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100372 ]
373}
374
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200375# The subset of rtc_base approved for use outside of libjingle.
mbonadeibc378472017-09-11 03:43:34 -0700376rtc_source_set("rtc_base_approved_generic") {
377 visibility = [
378 ":rtc_base_approved",
Tommi897e1362017-12-01 18:56:43 +0100379 ":weak_ptr_unittests",
mbonadeibc378472017-09-11 03:43:34 -0700380 ]
381
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100382 cflags = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200383 defines = []
384 libs = []
Michael Achenbach22060972018-04-09 09:34:21 +0200385 data_deps = []
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100386 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100387 ":atomicops",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100388 ":checks",
Tommi8d2c5a82018-03-19 11:12:48 +0100389 ":criticalsection",
390 ":logging",
391 ":macromagic",
392 ":platform_thread",
393 ":platform_thread_types",
394 ":ptr_util",
395 ":refcount",
396 ":rtc_event",
397 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100398 ":safe_compare",
Tommi8d2c5a82018-03-19 11:12:48 +0100399 ":safe_conversions",
Patrik Höglund3e113432017-12-15 14:40:10 +0100400 ":stringutils",
Tommi8d2c5a82018-03-19 11:12:48 +0100401 ":thread_checker",
402 ":timeutils",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100403 ":type_traits",
Niels Möllerb06b0a62018-05-25 10:05:34 +0200404 "system:arch",
Niels Möllera12c42a2018-07-25 16:05:48 +0200405 "system:unused",
Artem Titova76af0c2018-07-23 17:38:12 +0200406 "third_party/base64",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100407 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200408
409 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200410 "bind.h",
411 "bitbuffer.cc",
412 "bitbuffer.h",
Alex Narest78609d52017-10-20 10:37:47 +0200413 "bitrateallocationstrategy.cc",
414 "bitrateallocationstrategy.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200415 "buffer.h",
416 "bufferqueue.cc",
417 "bufferqueue.h",
418 "bytebuffer.cc",
419 "bytebuffer.h",
420 "byteorder.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200421 "copyonwritebuffer.cc",
422 "copyonwritebuffer.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200423 "event_tracer.cc",
424 "event_tracer.h",
425 "file.cc",
426 "file.h",
427 "flags.cc",
428 "flags.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200429 "function_view.h",
430 "ignore_wundef.h",
431 "location.cc",
432 "location.h",
Qingsi Wang558b93b2018-08-30 10:38:44 -0700433 "message_buffer_reader.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100434 "numerics/histogram_percentile_counter.cc",
435 "numerics/histogram_percentile_counter.h",
436 "numerics/mod_ops.h",
437 "numerics/moving_max_counter.h",
Ilya Nikolaevskiy0beed5d2018-05-22 10:54:30 +0200438 "numerics/sample_counter.cc",
439 "numerics/sample_counter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200440 "onetimeevent.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200441 "pathutils.cc",
442 "pathutils.h",
443 "platform_file.cc",
444 "platform_file.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200445 "race_checker.cc",
446 "race_checker.h",
447 "random.cc",
448 "random.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200449 "rate_statistics.cc",
450 "rate_statistics.h",
451 "ratetracker.cc",
452 "ratetracker.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200453 "swap_queue.h",
454 "template_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200455 "timestampaligner.cc",
456 "timestampaligner.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200457 "trace_event.h",
Joachim Bauch5b32f232018-03-07 20:02:26 +0100458 "zero_memory.cc",
459 "zero_memory.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200460 ]
461
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100462 deps += [
463 "..:webrtc_common",
464 "../api:array_view",
Sergey Silkin40b70502018-08-27 10:55:07 +0200465 "//third_party/abseil-cpp/absl/memory:memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200466 "//third_party/abseil-cpp/absl/types:optional",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100467 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200468
469 if (is_android) {
470 libs += [ "log" ]
471 }
472
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -0700473 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200474 sources += [ "file_posix.cc" ]
475 }
476
477 if (is_win) {
henrika3ca48a62018-05-21 13:34:51 +0200478 sources += [
479 "file_win.cc",
480 "win/windows_version.cc",
481 "win/windows_version.h",
482 ]
Michael Achenbach22060972018-04-09 09:34:21 +0200483 data_deps += [ "//build/win:runtime_libs" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200484 }
485
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200486 if (is_nacl) {
487 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
488 }
489}
490
mbonadeibc378472017-09-11 03:43:34 -0700491if (is_mac && !build_with_chromium) {
Mirko Bonadei99a70a22018-10-09 16:45:14 +0200492 rtc_source_set("logging_mac") {
493 visibility = [ ":logging" ]
494 libs = [ "Foundation.framework" ]
mbonadeibc378472017-09-11 03:43:34 -0700495 sources = [
Mirko Bonadei99a70a22018-10-09 16:45:14 +0200496 "logging_mac.h",
mbonadeibc378472017-09-11 03:43:34 -0700497 "logging_mac.mm",
498 ]
mbonadeibc378472017-09-11 03:43:34 -0700499 }
500}
501
perkj650fdae2017-08-25 05:00:11 -0700502rtc_source_set("rtc_task_queue") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000503 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100504 deps = []
mbonadei95c8f652017-08-27 23:40:10 -0700505 public_deps = [
perkj650fdae2017-08-25 05:00:11 -0700506 ":rtc_task_queue_api",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200507 ]
508
perkj650fdae2017-08-25 05:00:11 -0700509 if (rtc_link_task_queue_impl) {
mbonadei95c8f652017-08-27 23:40:10 -0700510 deps += [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700511 }
512}
513
514# WebRTC targets must not directly depend on rtc_task_queue_api or
515# rtc_task_queue_impl. Instead, depend on rtc_task_queue.
516# The build flag |rtc_link_task_queue_impl| decides if WebRTC targets will link
517# to the default implemenation in rtc_task_queue_impl or if an externally
518# provided implementation should be used. An external implementation should
519# depend on rtc_task_queue_api.
520rtc_source_set("rtc_task_queue_api") {
Tommi8d2c5a82018-03-19 11:12:48 +0100521 # The visibility list is commented out so that we won't break external
522 # implementations, but left here to manually test as well as for sake of what
523 # targets we expect to depend on rtc_task_queue_api.
524 # visibility = [
525 # ":rtc_task_queue",
526 # ":rtc_task_queue_impl",
527 # ":sequenced_task_checker",
528 # ]
nisse75dd6d42017-09-19 08:28:00 -0700529 sources = [
530 "task_queue.h",
531 ]
perkj650fdae2017-08-25 05:00:11 -0700532 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100533 ":macromagic",
534 ":ptr_util",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200535 "//third_party/abseil-cpp/absl/memory",
perkj650fdae2017-08-25 05:00:11 -0700536 ]
537}
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200538
Danil Chapovalova10d1642018-08-31 13:47:59 +0200539rtc_source_set("rtc_cancelable_task") {
540 sources = [
541 "cancelable_periodic_task.h",
542 "cancelable_task_handle.cc",
543 "cancelable_task_handle.h",
544 ]
545 deps = [
546 ":checks",
547 ":logging",
548 ":macromagic",
549 ":ptr_util",
550 ":refcount",
551 ":rtc_task_queue",
552 ":safe_conversions",
553 ":sequenced_task_checker",
554 ":thread_checker",
555 "//third_party/abseil-cpp/absl/memory",
556 ]
557}
558
Tommi8d2c5a82018-03-19 11:12:48 +0100559if (rtc_enable_libevent) {
560 rtc_source_set("rtc_task_queue_libevent") {
561 visibility = [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700562 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200563 "task_queue_libevent.cc",
564 "task_queue_posix.cc",
565 "task_queue_posix.h",
perkj650fdae2017-08-25 05:00:11 -0700566 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100567 deps = [
568 ":checks",
569 ":criticalsection",
570 ":logging",
Yves Gerey2e00abc2018-10-05 15:39:24 +0200571 ":macromagic",
Tommi8d2c5a82018-03-19 11:12:48 +0100572 ":platform_thread",
Yves Gerey2e00abc2018-10-05 15:39:24 +0200573 ":platform_thread_types",
Tommi8d2c5a82018-03-19 11:12:48 +0100574 ":ptr_util",
575 ":refcount",
576 ":rtc_task_queue_api",
577 ":safe_conversions",
578 ":timeutils",
Niels Möllera12c42a2018-07-25 16:05:48 +0200579 "system:unused",
Tommi8d2c5a82018-03-19 11:12:48 +0100580 ]
581 if (rtc_build_libevent) {
582 deps += [ "//base/third_party/libevent" ]
583 }
584 }
585}
586
587if (is_mac || is_ios) {
588 rtc_source_set("rtc_task_queue_gcd") {
589 visibility = [ ":rtc_task_queue_impl" ]
590 sources = [
591 "task_queue_gcd.cc",
592 "task_queue_posix.cc",
593 "task_queue_posix.h",
594 ]
595 deps = [
596 ":checks",
597 ":logging",
598 ":ptr_util",
599 ":refcount",
600 ":rtc_task_queue_api",
601 ]
602 }
603}
604
605if (is_win) {
606 rtc_source_set("rtc_task_queue_win") {
607 visibility = [ ":rtc_task_queue_impl" ]
608 sources = [
609 "task_queue_win.cc",
610 ]
611 deps = [
612 ":checks",
613 ":criticalsection",
614 ":logging",
615 ":macromagic",
616 ":platform_thread",
617 ":ptr_util",
618 ":refcount",
619 ":rtc_event",
620 ":rtc_task_queue_api",
621 ":safe_conversions",
622 ":timeutils",
623 ]
624 }
625}
626
627rtc_source_set("rtc_task_queue_impl") {
628 visibility = [ "*" ]
629 if (rtc_enable_libevent) {
630 deps = [
631 ":rtc_task_queue_libevent",
632 ]
perkj650fdae2017-08-25 05:00:11 -0700633 } else {
Niels Möller15c9cf72017-10-19 12:38:09 +0200634 if (is_mac || is_ios) {
Tommi8d2c5a82018-03-19 11:12:48 +0100635 deps = [
636 ":rtc_task_queue_gcd",
Niels Möller17a04742017-09-27 10:53:21 +0200637 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200638 }
639 if (is_win) {
Tommi8d2c5a82018-03-19 11:12:48 +0100640 deps = [
641 ":rtc_task_queue_win",
Niels Möller15c9cf72017-10-19 12:38:09 +0200642 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200643 }
644 }
645}
646
Tommi8d2c5a82018-03-19 11:12:48 +0100647rtc_source_set("sequenced_task_checker") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200648 sources = [
649 "sequenced_task_checker.h",
650 "sequenced_task_checker_impl.cc",
651 "sequenced_task_checker_impl.h",
652 ]
653 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100654 ":checks",
Tommi8d2c5a82018-03-19 11:12:48 +0100655 ":criticalsection",
656 ":macromagic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200657 ":rtc_task_queue",
Tommi8d2c5a82018-03-19 11:12:48 +0100658 ":thread_checker",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200659 ]
660}
661
662rtc_static_library("weak_ptr") {
663 sources = [
664 "weak_ptr.cc",
665 "weak_ptr.h",
666 ]
667 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100668 ":ptr_util",
669 ":refcount",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200670 ":sequenced_task_checker",
671 ]
672}
673
674rtc_static_library("rtc_numerics") {
675 sources = [
676 "numerics/exp_filter.cc",
677 "numerics/exp_filter.h",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +0100678 "numerics/moving_median_filter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200679 "numerics/percentile_filter.h",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200680 "numerics/sequence_number_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200681 ]
682 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100683 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200684 ":rtc_base_approved",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100685 ":safe_compare",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200686 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200687 ]
688}
689
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200690rtc_source_set("rtc_json") {
691 defines = []
692 sources = [
Sam Zackrissonb45bdb52018-10-02 16:25:59 +0200693 "strings/json.cc",
694 "strings/json.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200695 ]
Jonas Olsson941a07c2018-09-13 10:07:07 +0200696 deps = [
697 ":stringutils",
698 ]
Mirko Bonadeia0e29fc2018-01-26 16:50:02 +0100699 all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200700 if (rtc_build_json) {
701 public_deps = [
702 "//third_party/jsoncpp",
703 ]
704 } else {
705 include_dirs = [ "$rtc_jsoncpp_root" ]
706
707 # When defined changes the include path for json.h to where it is
708 # expected to be when building json outside of the standalone build.
709 defines += [ "WEBRTC_EXTERNAL_JSON" ]
710 }
711}
712
mbonadei9c5e5112017-09-05 05:17:02 -0700713rtc_static_library("rtc_base") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000714 visibility = [ "*" ]
Dan Minor9c686132018-01-15 10:20:00 -0500715 public_deps = []
716 if (!build_with_mozilla) {
717 public_deps += [ ":rtc_base_generic" ]
718 }
mbonadei310e32b2017-09-07 07:36:28 -0700719 if (is_win) {
720 sources = [
721 "noop.cc",
722 ]
723 }
724 if (is_ios || is_mac) {
725 sources = [
726 "noop.mm",
727 ]
728 public_deps += [ ":rtc_base_objc" ]
729 }
730}
731
732if (is_ios || is_mac) {
733 rtc_source_set("rtc_base_objc") {
734 sources = [
735 "thread_darwin.mm",
736 ]
737 deps = [
738 ":rtc_base_generic",
739 ]
740 visibility = [ ":rtc_base" ]
741 }
742}
743
744rtc_static_library("rtc_base_generic") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200745 cflags = []
746 cflags_cc = []
747 libs = []
748 defines = []
749 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100750 ":checks",
Patrik Höglund3e113432017-12-15 14:40:10 +0100751 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200752 "..:webrtc_common",
Joachim Bauch58daf402017-12-21 22:00:34 +0100753 "../api:array_view",
Artem Titova76af0c2018-07-23 17:38:12 +0200754 "third_party/base64",
Artem Titove41c4332018-07-25 15:04:28 +0200755 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200756 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200757 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200758 ]
759 public_deps = [
760 ":rtc_base_approved",
761 ]
762 public_configs = []
763
764 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
765
766 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200767 "asyncinvoker-inl.h",
768 "asyncinvoker.cc",
769 "asyncinvoker.h",
770 "asyncpacketsocket.cc",
771 "asyncpacketsocket.h",
772 "asyncresolverinterface.cc",
773 "asyncresolverinterface.h",
774 "asyncsocket.cc",
775 "asyncsocket.h",
776 "asynctcpsocket.cc",
777 "asynctcpsocket.h",
778 "asyncudpsocket.cc",
779 "asyncudpsocket.h",
780 "crc32.cc",
781 "crc32.h",
782 "cryptstring.cc",
783 "cryptstring.h",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +0100784 "data_rate_limiter.cc",
785 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100786 "dscp.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200787 "filerotatingstream.cc",
788 "filerotatingstream.h",
789 "fileutils.cc",
790 "fileutils.h",
791 "gunit_prod.h",
792 "helpers.cc",
793 "helpers.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200794 "httpcommon.cc",
795 "httpcommon.h",
796 "ipaddress.cc",
797 "ipaddress.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100798 "keep_ref_until_done.h",
Qingsi Wang09619332018-09-12 22:51:55 -0700799 "mdns_responder_interface.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200800 "messagedigest.cc",
801 "messagedigest.h",
802 "messagehandler.cc",
803 "messagehandler.h",
804 "messagequeue.cc",
805 "messagequeue.h",
Zhi Huang942bc2e2017-11-13 13:26:07 -0800806 "nethelper.cc",
807 "nethelper.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200808 "nethelpers.cc",
809 "nethelpers.h",
810 "network.cc",
811 "network.h",
Patrik Höglunde2d6a062017-10-05 14:53:33 +0200812 "network_constants.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200813 "networkmonitor.cc",
814 "networkmonitor.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100815 "networkroute.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200816 "nullsocketserver.cc",
817 "nullsocketserver.h",
818 "openssl.h",
819 "openssladapter.cc",
820 "openssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700821 "opensslcertificate.cc",
822 "opensslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200823 "openssldigest.cc",
824 "openssldigest.h",
825 "opensslidentity.cc",
826 "opensslidentity.h",
Benjamin Wright19aab2e2018-04-05 15:39:06 -0700827 "opensslsessioncache.cc",
828 "opensslsessioncache.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200829 "opensslstreamadapter.cc",
830 "opensslstreamadapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700831 "opensslutility.cc",
832 "opensslutility.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200833 "physicalsocketserver.cc",
834 "physicalsocketserver.h",
835 "proxyinfo.cc",
836 "proxyinfo.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200837 "rtccertificate.cc",
838 "rtccertificate.h",
839 "rtccertificategenerator.cc",
840 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700841 "signalthread.cc",
842 "signalthread.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700843 "sigslotrepeater.h",
Qingsi Wang6e641e62018-04-11 20:14:17 -0700844 "socket.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200845 "socket.h",
846 "socketadapters.cc",
847 "socketadapters.h",
848 "socketaddress.cc",
849 "socketaddress.h",
850 "socketaddresspair.cc",
851 "socketaddresspair.h",
852 "socketfactory.h",
853 "socketserver.h",
854 "socketstream.cc",
855 "socketstream.h",
856 "ssladapter.cc",
857 "ssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700858 "sslcertificate.cc",
859 "sslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200860 "sslfingerprint.cc",
861 "sslfingerprint.h",
862 "sslidentity.cc",
863 "sslidentity.h",
864 "sslstreamadapter.cc",
865 "sslstreamadapter.h",
866 "stream.cc",
867 "stream.h",
868 "thread.cc",
869 "thread.h",
870 ]
871
mbonadei310e32b2017-09-07 07:36:28 -0700872 visibility = [
873 ":rtc_base",
874 ":rtc_base_objc",
875 ]
876
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200877 if (build_with_chromium) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200878 include_dirs = [ "../../boringssl/src/include" ]
879 public_configs += [ ":rtc_base_chromium_config" ]
880 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200881 sources += [
882 "callback.h",
883 "logsinks.cc",
884 "logsinks.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100885 "numerics/mathutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200886 "optionsfile.cc",
887 "optionsfile.h",
888 "rollingaccumulator.h",
889 "sslroots.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200890 ]
891
892 if (is_win) {
893 sources += [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200894 "win32socketinit.h",
895 "win32socketserver.cc",
896 "win32socketserver.h",
897 ]
898 }
899 } # !build_with_chromium
900
901 if (rtc_build_ssl) {
902 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 10:40:39 -0500903 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200904 configs += [ ":external_ssl_library" ]
905 }
906
907 if (is_android) {
908 sources += [
909 "ifaddrs-android.cc",
910 "ifaddrs-android.h",
911 ]
912
913 libs += [
914 "log",
915 "GLESv2",
916 ]
917 }
918
919 if (is_ios || is_mac) {
mbonadei310e32b2017-09-07 07:36:28 -0700920 sources += [ "macifaddrs_converter.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200921 }
922
Joachim Bauch75f18fc2017-12-20 21:25:47 +0100923 if (rtc_use_x11) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200924 libs += [
925 "dl",
926 "rt",
927 "Xext",
928 "X11",
929 "Xcomposite",
930 "Xrender",
931 ]
932 }
933
934 if (is_linux) {
935 libs += [
936 "dl",
937 "rt",
938 ]
939 }
940
941 if (is_mac) {
942 sources += [
943 "macutils.cc",
944 "macutils.h",
945 ]
946 libs += [
947 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
948 "ApplicationServices.framework",
949 ]
950 }
951
952 if (is_win) {
953 sources += [
954 "win32.cc",
955 "win32.h",
956 "win32filesystem.cc",
957 "win32filesystem.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200958 "win32window.cc",
959 "win32window.h",
960 ]
961
962 libs += [
963 "crypt32.lib",
964 "iphlpapi.lib",
965 "secur32.lib",
966 ]
967
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200968 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
969 }
970
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -0700971 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200972 sources += [
973 "ifaddrs_converter.cc",
974 "ifaddrs_converter.h",
975 "unixfilesystem.cc",
976 "unixfilesystem.h",
977 ]
978 }
979
980 if (is_nacl) {
981 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
982 defines += [ "timezone=_timezone" ]
983 sources -= [ "ifaddrs_converter.cc" ]
984 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200985}
986
987rtc_source_set("gtest_prod") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000988 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200989 sources = [
990 "gtest_prod_util.h",
991 ]
992}
993
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200994rtc_source_set("rtc_base_tests_utils") {
995 testonly = true
996 sources = [
997 # Also use this as a convenient dumping ground for misc files that are
998 # included by multiple targets below.
999 "cpu_time.cc",
1000 "cpu_time.h",
Qingsi Wang09619332018-09-12 22:51:55 -07001001 "fake_mdns_responder.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001002 "fakeclock.cc",
1003 "fakeclock.h",
1004 "fakenetwork.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001005 "fakesslidentity.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001006 "fakesslidentity.h",
1007 "firewallsocketserver.cc",
1008 "firewallsocketserver.h",
Steve Antonad7bffc2018-01-22 10:21:56 -08001009 "gunit.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001010 "gunit.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001011 "memory_usage.cc",
1012 "memory_usage.h",
1013 "natserver.cc",
1014 "natserver.h",
1015 "natsocketfactory.cc",
1016 "natsocketfactory.h",
1017 "nattypes.cc",
1018 "nattypes.h",
1019 "proxyserver.cc",
1020 "proxyserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001021 "sigslottester.h",
1022 "sigslottester.h.pump",
1023 "testbase64.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001024 "testcertificateverifier.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001025 "testclient.cc",
1026 "testclient.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001027 "testechoserver.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001028 "testechoserver.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001029 "testutils.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001030 "testutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001031 "virtualsocketserver.cc",
1032 "virtualsocketserver.h",
1033 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001034 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001035 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001036 ":rtc_base",
Patrik Höglund3e113432017-12-15 14:40:10 +01001037 ":stringutils",
Sebastian Jansson5f83cf02018-05-08 14:52:22 +02001038 "../api/units:time_delta",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001039 "../test:test_support",
Karl Wiberg80ba3332018-02-05 10:33:35 +01001040 "system:fallthrough",
Artem Titove41c4332018-07-25 15:04:28 +02001041 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001042 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001043 ]
1044 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001045 "//testing/gtest",
1046 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001047}
1048
Tommida8781f2018-02-19 12:41:43 +01001049rtc_source_set("rtc_task_queue_for_test") {
1050 visibility = [ "*" ]
1051 testonly = true
1052
1053 sources = [
1054 "task_queue_for_test.cc",
1055 "task_queue_for_test.h",
1056 ]
1057 deps = [
1058 ":checks",
1059 ":rtc_base_approved",
1060 ":rtc_task_queue",
1061 ]
1062}
1063
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001064if (rtc_include_tests) {
Artem Titove41c4332018-07-25 15:04:28 +02001065 rtc_source_set("sigslot_unittest") {
1066 testonly = true
1067 sources = [
1068 "sigslot_unittest.cc",
1069 ]
1070 deps = [
1071 ":rtc_base",
1072 ":rtc_base_tests_utils",
1073 "third_party/sigslot",
1074 ]
1075 }
1076
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001077 rtc_source_set("rtc_base_tests_main") {
1078 testonly = true
1079 sources = [
1080 "unittest_main.cc",
1081 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001082 deps = [
1083 ":rtc_base",
1084 ":rtc_base_approved",
1085 ":rtc_base_tests_utils",
Mirko Bonadei17f48782018-09-28 08:51:10 +02001086 "../system_wrappers:field_trial",
1087 "../system_wrappers:metrics",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001088 "../test:field_trial",
1089 "../test:test_support",
1090 ]
1091
1092 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001093 "//testing/gtest",
1094 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001095 }
1096
1097 rtc_source_set("rtc_base_nonparallel_tests") {
1098 testonly = true
1099
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001100 sources = [
1101 "cpu_time_unittest.cc",
1102 "filerotatingstream_unittest.cc",
1103 "nullsocketserver_unittest.cc",
1104 "physicalsocketserver_unittest.cc",
1105 "socket_unittest.cc",
1106 "socket_unittest.h",
1107 "socketaddress_unittest.cc",
1108 ]
1109 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001110 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001111 ":rtc_base",
1112 ":rtc_base_tests_main",
1113 ":rtc_base_tests_utils",
1114 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001115 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001116 "../test:test_support",
1117 "//testing/gtest",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001118 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001119 ]
1120 if (is_win) {
1121 sources += [ "win32socketserver_unittest.cc" ]
1122 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001123 }
1124
1125 rtc_source_set("rtc_base_approved_unittests") {
1126 testonly = true
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001127 if (is_msan) {
1128 cflags = [ "-fsanitize=memory" ]
1129 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001130 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001131 "atomicops_unittest.cc",
1132 "base64_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001133 "bind_unittest.cc",
1134 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +01001135 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001136 "buffer_unittest.cc",
1137 "bufferqueue_unittest.cc",
1138 "bytebuffer_unittest.cc",
1139 "byteorder_unittest.cc",
1140 "copyonwritebuffer_unittest.cc",
1141 "criticalsection_unittest.cc",
1142 "event_tracer_unittest.cc",
1143 "event_unittest.cc",
1144 "file_unittest.cc",
1145 "function_view_unittest.cc",
1146 "logging_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +01001147 "numerics/histogram_percentile_counter_unittest.cc",
1148 "numerics/mod_ops_unittest.cc",
1149 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +01001150 "numerics/safe_compare_unittest.cc",
1151 "numerics/safe_minmax_unittest.cc",
Ilya Nikolaevskiy0beed5d2018-05-22 10:54:30 +02001152 "numerics/sample_counter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001153 "onetimeevent_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001154 "pathutils_unittest.cc",
Artem Titove62f6002018-03-19 15:40:00 +01001155 "platform_file_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001156 "platform_thread_unittest.cc",
1157 "random_unittest.cc",
1158 "rate_limiter_unittest.cc",
1159 "rate_statistics_unittest.cc",
1160 "ratetracker_unittest.cc",
1161 "refcountedobject_unittest.cc",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001162 "sanitizer_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001163 "string_to_number_unittest.cc",
1164 "stringencode_unittest.cc",
1165 "stringize_macros_unittest.cc",
Tommifef05002018-02-27 13:51:08 +01001166 "strings/string_builder_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001167 "stringutils_unittest.cc",
1168 "swap_queue_unittest.cc",
1169 "thread_annotations_unittest.cc",
1170 "thread_checker_unittest.cc",
1171 "timestampaligner_unittest.cc",
1172 "timeutils_unittest.cc",
1173 "virtualsocket_unittest.cc",
Joachim Bauch5b32f232018-03-07 20:02:26 +01001174 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001175 ]
henrika3ca48a62018-05-21 13:34:51 +02001176 if (is_win) {
1177 sources += [ "win/windows_version_unittest.cc" ]
1178 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001179 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001180 ":checks",
1181 ":rate_limiter",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001182 ":rtc_base",
1183 ":rtc_base_approved",
1184 ":rtc_base_tests_main",
1185 ":rtc_base_tests_utils",
1186 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001187 ":safe_compare",
Karl Wiberg12edf4c2018-03-07 14:18:56 +01001188 ":safe_minmax",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001189 ":sanitizer",
Patrik Höglund3e113432017-12-15 14:40:10 +01001190 ":stringutils",
kwiberg529662a2017-09-04 05:43:17 -07001191 "../api:array_view",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001192 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001193 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001194 "../test:test_support",
Karl Wiberg29e7bee2018-03-22 14:11:52 +01001195 "memory:unittests",
Artem Titova76af0c2018-07-23 17:38:12 +02001196 "third_party/base64",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001197 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001198 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001199 }
1200
1201 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001202 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001203 testonly = true
1204
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001205 sources = [
Danil Chapovalova10d1642018-08-31 13:47:59 +02001206 "cancelable_periodic_task_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001207 "task_queue_unittest.cc",
1208 ]
1209 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001210 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001211 ":rtc_base_tests_main",
1212 ":rtc_base_tests_utils",
Danil Chapovalova10d1642018-08-31 13:47:59 +02001213 ":rtc_cancelable_task",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001214 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001215 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001216 "../test:test_support",
1217 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001218 }
1219
1220 rtc_source_set("sequenced_task_checker_unittests") {
1221 testonly = true
1222
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001223 sources = [
1224 "sequenced_task_checker_unittest.cc",
1225 ]
1226 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001227 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001228 ":rtc_base_approved",
1229 ":rtc_base_tests_main",
1230 ":rtc_task_queue",
1231 ":sequenced_task_checker",
1232 "../test:test_support",
1233 ]
1234 }
1235
1236 rtc_source_set("weak_ptr_unittests") {
1237 testonly = true
1238
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001239 sources = [
1240 "weak_ptr_unittest.cc",
1241 ]
1242 deps = [
Tommi897e1362017-12-01 18:56:43 +01001243 ":rtc_base_approved_generic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001244 ":rtc_base_tests_main",
1245 ":rtc_base_tests_utils",
Tommi8d2c5a82018-03-19 11:12:48 +01001246 ":rtc_event",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001247 ":rtc_task_queue",
1248 ":weak_ptr",
1249 "../test:test_support",
1250 ]
1251 }
1252
1253 rtc_source_set("rtc_numerics_unittests") {
1254 testonly = true
1255
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001256 sources = [
1257 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001258 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001259 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001260 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001261 ]
1262 deps = [
1263 ":rtc_base_approved",
1264 ":rtc_base_tests_main",
1265 ":rtc_numerics",
1266 "../test:test_support",
1267 ]
1268 }
1269
Sam Zackrissonb45bdb52018-10-02 16:25:59 +02001270 rtc_source_set("rtc_json_unittests") {
1271 testonly = true
1272
1273 sources = [
1274 "strings/json_unittest.cc",
1275 ]
1276 deps = [
1277 ":rtc_base_tests_main",
1278 ":rtc_base_tests_utils",
1279 ":rtc_json",
1280 "../test:test_support",
1281 ]
1282 }
1283
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001284 rtc_source_set("rtc_base_unittests") {
1285 testonly = true
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001286 defines = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001287
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001288 sources = [
1289 "callback_unittest.cc",
1290 "crc32_unittest.cc",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +01001291 "data_rate_limiter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001292 "helpers_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001293 "ipaddress_unittest.cc",
1294 "memory_usage_unittest.cc",
1295 "messagedigest_unittest.cc",
1296 "messagequeue_unittest.cc",
1297 "nat_unittest.cc",
1298 "network_unittest.cc",
1299 "optionsfile_unittest.cc",
1300 "proxy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001301 "rollingaccumulator_unittest.cc",
1302 "rtccertificate_unittest.cc",
1303 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001304 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001305 "sigslottester_unittest.cc",
1306 "stream_unittest.cc",
1307 "testclient_unittest.cc",
1308 "thread_unittest.cc",
1309 ]
1310 if (is_win) {
1311 sources += [
1312 "win32_unittest.cc",
1313 "win32window_unittest.cc",
1314 ]
1315 }
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -07001316 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001317 sources += [
Diogo Real1dca9d52017-08-29 12:18:32 -07001318 "openssladapter_unittest.cc",
Benjamin Wright19aab2e2018-04-05 15:39:06 -07001319 "opensslsessioncache_unittest.cc",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001320 "opensslutility_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001321 "ssladapter_unittest.cc",
1322 "sslidentity_unittest.cc",
1323 "sslstreamadapter_unittest.cc",
1324 ]
1325 }
1326 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001327 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001328 ":rtc_base_tests_main",
1329 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001330 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001331 "../api:array_view",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001332 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001333 "../test:test_support",
Artem Titove41c4332018-07-25 15:04:28 +02001334 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001335 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +02001336 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001337 ]
1338 public_deps = [
1339 ":rtc_base",
1340 ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001341 if (build_with_chromium) {
1342 include_dirs = [ "../../boringssl/src/include" ]
1343 }
1344 if (rtc_build_ssl) {
1345 deps += [ "//third_party/boringssl" ]
1346 } else {
1347 configs += [ ":external_ssl_library" ]
1348 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001349 }
1350}
1351
Henrik Kjellander73e21802017-06-20 08:38:58 +02001352if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33 +00001353 rtc_android_library("base_java") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001354 java_files = [
1355 "java/src/org/webrtc/ContextUtils.java",
Paulina Hensman1ec04f12018-06-21 14:31:38 +02001356 "java/src/org/webrtc/Loggable.java",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001357 "java/src/org/webrtc/Logging.java",
1358 "java/src/org/webrtc/Size.java",
1359 "java/src/org/webrtc/ThreadUtils.java",
1360 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +02001361 }
1362}