# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. # # Use of this source code is governed by a BSD-style license # that can be found in the LICENSE file in the root of the source # tree. An additional intellectual property rights grant can be found # in the file PATENTS. All contributing project authors may # be found in the AUTHORS file in the root of the source tree. import("//build/config/crypto.gni") import("//build/config/ui.gni") import("../webrtc.gni") if (is_android) { import("//build/config/android/config.gni") import("//build/config/android/rules.gni") } config("rtc_base_chromium_config") { defines = [ "NO_MAIN_THREAD_WRAPPING" ] } if (!rtc_build_ssl) { config("external_ssl_library") { assert(rtc_ssl_root != "", "You must specify rtc_ssl_root when rtc_build_ssl==0.") include_dirs = [ rtc_ssl_root ] } } rtc_source_set("protobuf_utils") { sources = [ "protobuf_utils.h" ] if (rtc_enable_protobuf) { public_configs = [ "//third_party/protobuf:protobuf_config" ] deps = [ "//third_party/protobuf:protobuf_lite" ] } } rtc_source_set("compile_assert_c") { sources = [ "compile_assert_c.h" ] } rtc_source_set("ignore_wundef") { sources = [ "ignore_wundef.h" ] } # The subset of rtc_base approved for use outside of libjingle. # TODO(bugs.webrtc.org/9838): Create small and focused build targets and remove # the old concept of rtc_base and rtc_base_approved. rtc_library("rtc_base_approved") { visibility = [ "*" ] deps = [ ":checks", ":rtc_task_queue", ":safe_compare", ":type_traits", "../api:array_view", "../api:scoped_refptr", "synchronization:mutex", "system:arch", "system:rtc_export", "system:unused", "third_party/base64", ] absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] public_deps = [] # no-presubmit-check TODO(webrtc:8603) sources = [ "bind.h", "bit_buffer.cc", "bit_buffer.h", "buffer.h", "buffer_queue.cc", "buffer_queue.h", "byte_buffer.cc", "byte_buffer.h", "byte_order.h", "copy_on_write_buffer.cc", "copy_on_write_buffer.h", "event_tracer.cc", "event_tracer.h", "location.cc", "location.h", "message_buffer_reader.h", "numerics/histogram_percentile_counter.cc", "numerics/histogram_percentile_counter.h", "numerics/mod_ops.h", "numerics/moving_max_counter.h", "numerics/sample_counter.cc", "numerics/sample_counter.h", "one_time_event.h", "race_checker.cc", "race_checker.h", "random.cc", "random.h", "rate_statistics.cc", "rate_statistics.h", "rate_tracker.cc", "rate_tracker.h", "swap_queue.h", "timestamp_aligner.cc", "timestamp_aligner.h", "trace_event.h", "zero_memory.cc", "zero_memory.h", ] if (is_win) { sources += [ "win/windows_version.cc", "win/windows_version.h", ] data_deps = [ "//build/win:runtime_libs" ] } if (is_nacl) { public_deps += # no-presubmit-check TODO(webrtc:8603) [ "//native_client_sdk/src/libraries/nacl_io" ] } if (is_android) { libs = [ "log" ] } public_deps += [ # no-presubmit-check TODO(webrtc:8603) ":atomicops", ":criticalsection", ":logging", ":macromagic", ":platform_thread", ":platform_thread_types", ":refcount", ":rtc_event", ":safe_conversions", ":stringutils", ":thread_checker", ":timeutils", ] } rtc_source_set("macromagic") { # TODO(bugs.webrtc.org/9606): This should not be public. visibility = [ "*" ] sources = [ "arraysize.h", "constructor_magic.h", "format_macros.h", "stringize_macros.h", "thread_annotations.h", ] deps = [ "system:arch" ] } rtc_library("platform_thread_types") { sources = [ "platform_thread_types.cc", "platform_thread_types.h", ] deps = [ ":macromagic" ] } rtc_source_set("refcount") { visibility = [ "*" ] sources = [ "ref_count.h", "ref_counted_object.h", "ref_counter.h", ] deps = [ ":macromagic" ] } rtc_library("criticalsection") { sources = [ "deprecated/recursive_critical_section.cc", "deprecated/recursive_critical_section.h", ] deps = [ ":atomicops", ":checks", ":macromagic", ":platform_thread_types", "synchronization:yield", "system:unused", ] } rtc_library("platform_thread") { visibility = [ ":rtc_base_approved", ":rtc_task_queue_libevent", ":rtc_task_queue_win", ":rtc_task_queue_stdlib", "synchronization:mutex", "synchronization:sequence_checker", ] sources = [ "platform_thread.cc", "platform_thread.h", ] deps = [ ":atomicops", ":checks", ":macromagic", ":platform_thread_types", ":rtc_event", ":thread_checker", ":timeutils", ] absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] } rtc_library("rtc_event") { if (build_with_chromium) { sources = [ "../../webrtc_overrides/rtc_base/event.cc", "../../webrtc_overrides/rtc_base/event.h", ] deps = [ ":checks", "system:rtc_export", # Only Chromium's rtc::Event use RTC_EXPORT. "//base", # Dependency on chromium's waitable_event. ] } else { sources = [ "event.cc", "event.h", ] deps = [ ":checks", "synchronization:yield_policy", "system:warn_current_thread_is_deadlocked", ] absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] } } rtc_library("logging") { visibility = [ "*" ] libs = [] deps = [ ":checks", ":criticalsection", ":macromagic", ":platform_thread_types", ":stringutils", ":timeutils", "synchronization:mutex", ] absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers", "//third_party/abseil-cpp/absl/meta:type_traits", "//third_party/abseil-cpp/absl/strings", ] if (build_with_chromium) { # Dependency on chromium's logging (in //base). deps += [ "//base" ] sources = [ "../../webrtc_overrides/rtc_base/logging.cc", "../../webrtc_overrides/rtc_base/logging.h", ] } else { configs += [ "..:no_exit_time_destructors", "..:no_global_constructors", ] sources = [ "logging.cc", "logging.h", ] deps += [ "system:inline" ] if (is_mac) { frameworks = [ "Foundation.framework" ] } # logging.h needs the deprecation header while downstream projects are # removing code that depends on logging implementation details. deps += [ ":deprecation" ] if (is_android) { libs += [ "log" ] } } } rtc_source_set("thread_checker") { sources = [ "thread_checker.h" ] deps = [ ":deprecation", "synchronization:sequence_checker", ] } rtc_source_set("atomicops") { sources = [ "atomic_ops.h" ] } rtc_library("checks") { # TODO(bugs.webrtc.org/9607): This should not be public. visibility = [ "*" ] libs = [] sources = [ "checks.cc", "checks.h", ] deps = [ ":safe_compare", "system:inline", "system:rtc_export", ] absl_deps = [ "//third_party/abseil-cpp/absl/meta:type_traits", "//third_party/abseil-cpp/absl/strings", ] if (is_android) { libs += [ "log" ] } } rtc_library("rate_limiter") { sources = [ "rate_limiter.cc", "rate_limiter.h", ] deps = [ ":rtc_base_approved", "../system_wrappers", "synchronization:mutex", ] absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] } rtc_source_set("sanitizer") { sources = [ "sanitizer.h" ] absl_deps = [ "//third_party/abseil-cpp/absl/meta:type_traits" ] } rtc_source_set("bounded_inline_vector") { public = [ "bounded_inline_vector.h" ] sources = [ "bounded_inline_vector_impl.h" ] deps = [ ":checks" ] } rtc_source_set("divide_round") { sources = [ "numerics/divide_round.h" ] deps = [ ":checks", ":safe_compare", ] } rtc_source_set("safe_compare") { sources = [ "numerics/safe_compare.h" ] deps = [ ":type_traits" ] } rtc_source_set("safe_minmax") { sources = [ "numerics/safe_minmax.h" ] deps = [ ":checks", ":safe_compare", ":type_traits", ] } rtc_source_set("safe_conversions") { sources = [ "numerics/safe_conversions.h", "numerics/safe_conversions_impl.h", ] deps = [ ":checks" ] } rtc_library("timeutils") { visibility = [ "*" ] sources = [ "time_utils.cc", "time_utils.h", ] deps = [ ":checks", ":safe_conversions", ":stringutils", "system:rtc_export", ] libs = [] if (is_win) { libs += [ "winmm.lib" ] } } rtc_library("stringutils") { sources = [ "string_encode.cc", "string_encode.h", "string_to_number.cc", "string_to_number.h", "string_utils.cc", "string_utils.h", "strings/string_builder.cc", "strings/string_builder.h", "strings/string_format.cc", "strings/string_format.h", ] deps = [ ":checks", ":macromagic", ":safe_minmax", "../api:array_view", ] absl_deps = [ "//third_party/abseil-cpp/absl/strings", "//third_party/abseil-cpp/absl/types:optional", ] } rtc_library("audio_format_to_string") { sources = [ "strings/audio_format_to_string.cc", "strings/audio_format_to_string.h", ] deps = [ ":stringutils", "../api/audio_codecs:audio_codecs_api", ] } rtc_source_set("type_traits") { sources = [ "type_traits.h" ] } rtc_source_set("deprecation") { sources = [ "deprecation.h" ] } rtc_library("rtc_task_queue") { visibility = [ "*" ] sources = [ "task_queue.cc", "task_queue.h", ] deps = [ ":macromagic", "../api/task_queue", "system:rtc_export", "task_utils:to_queued_task", ] absl_deps = [ "//third_party/abseil-cpp/absl/memory" ] } rtc_source_set("rtc_operations_chain") { visibility = [ "*" ] sources = [ "operations_chain.cc", "operations_chain.h", ] deps = [ ":checks", ":macromagic", ":refcount", "../api:scoped_refptr", "synchronization:sequence_checker", ] } if (rtc_enable_libevent) { rtc_library("rtc_task_queue_libevent") { visibility = [ "../api/task_queue:default_task_queue_factory" ] sources = [ "task_queue_libevent.cc", "task_queue_libevent.h", ] deps = [ ":checks", ":criticalsection", ":logging", ":macromagic", ":platform_thread", ":platform_thread_types", ":safe_conversions", ":timeutils", "../api/task_queue", "synchronization:mutex", ] absl_deps = [ "//third_party/abseil-cpp/absl/container:inlined_vector", "//third_party/abseil-cpp/absl/strings", ] if (rtc_build_libevent) { deps += [ "//base/third_party/libevent" ] } } } if (is_mac || is_ios) { rtc_library("rtc_task_queue_gcd") { visibility = [ "../api/task_queue:default_task_queue_factory" ] sources = [ "task_queue_gcd.cc", "task_queue_gcd.h", ] deps = [ ":checks", ":logging", "../api/task_queue", "synchronization:mutex", "system:gcd_helpers", ] absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] } } if (is_win) { rtc_library("rtc_task_queue_win") { visibility = [ "../api/task_queue:default_task_queue_factory" ] sources = [ "task_queue_win.cc", "task_queue_win.h", ] deps = [ ":checks", ":criticalsection", ":logging", ":macromagic", ":platform_thread", ":rtc_event", ":safe_conversions", ":timeutils", "../api/task_queue", "synchronization:mutex", ] absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] } } rtc_library("rtc_task_queue_stdlib") { sources = [ "task_queue_stdlib.cc", "task_queue_stdlib.h", ] deps = [ ":checks", ":criticalsection", ":logging", ":macromagic", ":platform_thread", ":rtc_event", ":safe_conversions", ":timeutils", "../api/task_queue", "synchronization:mutex", ] absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] } rtc_library("weak_ptr") { sources = [ "weak_ptr.cc", "weak_ptr.h", ] deps = [ ":refcount", "../api:scoped_refptr", "synchronization:sequence_checker", ] } rtc_library("rtc_numerics") { sources = [ "numerics/event_based_exponential_moving_average.cc", "numerics/event_based_exponential_moving_average.h", "numerics/event_rate_counter.cc", "numerics/event_rate_counter.h", "numerics/exp_filter.cc", "numerics/exp_filter.h", "numerics/math_utils.h", "numerics/moving_average.cc", "numerics/moving_average.h", "numerics/moving_median_filter.h", "numerics/percentile_filter.h", "numerics/running_statistics.h", "numerics/sample_stats.cc", "numerics/sample_stats.h", "numerics/samples_stats_counter.cc", "numerics/samples_stats_counter.h", "numerics/sequence_number_util.h", ] deps = [ ":checks", ":rtc_base_approved", ":safe_compare", "../api:array_view", "../api/units:data_rate", "../api/units:time_delta", "../api/units:timestamp", ] absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container", "//third_party/abseil-cpp/absl/types:optional", ] } config("rtc_json_suppressions") { if (!is_win || is_clang) { cflags_cc = [ # TODO(bugs.webrtc.org/10770): Update jsoncpp API usage and remove # -Wno-deprecated-declarations. "-Wno-deprecated-declarations", # TODO(bugs.webrtc.org/10814): Remove -Wno-undef as soon as it get # removed upstream. "-Wno-undef", ] } } rtc_library("rtc_json") { public_configs = [ ":rtc_json_suppressions" ] poisonous = [ "rtc_json" ] defines = [] sources = [ "strings/json.cc", "strings/json.h", ] deps = [ ":stringutils" ] all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ] if (rtc_build_json) { public_deps = # no-presubmit-check TODO(webrtc:8603) [ "//third_party/jsoncpp" ] } else { include_dirs = [ "$rtc_jsoncpp_root" ] # When defined changes the include path for json.h to where it is # expected to be when building json outside of the standalone build. defines += [ "WEBRTC_EXTERNAL_JSON" ] } } rtc_source_set("net_helpers") { # TODO(bugs.webrtc.org/9987): This build target will soon contain # the following files: # sources = [ # "net_helpers.cc", # "net_helpers.h", # ] } rtc_source_set("async_resolver_interface") { visibility = [ "*" ] # TODO(bugs.webrtc.org/9987): This build target will soon contain # the following files: # sources = [ # "async_resolver_interface.cc", # "async_resolver_interface.h", # ] } rtc_source_set("ip_address") { visibility = [ "*" ] # TODO(bugs.webrtc.org/9987): This build target will soon contain # the following files: # sources = [ # "ip_address.cc", # "ip_address.h", # ] } rtc_source_set("socket_address") { visibility = [ "*" ] # TODO(bugs.webrtc.org/9987): This build target will soon contain # the following files: # sources = [ # "socket_address.cc", # "socket_address.h", # ] } rtc_source_set("null_socket_server") { # TODO(bugs.webrtc.org/9987): This build target will soon contain # the following files: # sources = [ # "null_socket_server.cc", # "null_socket_server.h", # ] } rtc_source_set("socket_server") { # TODO(bugs.webrtc.org/9987): This build target will soon contain # the following files: # sources = [ # "socket_server.h", # ] } rtc_source_set("threading") { visibility = [ "*" ] # TODO(bugs.webrtc.org/9987): This build target will soon contain # the following files: # sources = [ # "asyncresolver.cc", # "asyncresolver.h", # "defaultsocketserver.cc", # "defaultsocketserver.h", # "message_handler.cc", # "message_handler.h", # "network_monitor.cc", # "network_monitor.h", # "physical_socket_server.cc", # "physical_socket_server.h", # "signal_thread.cc", # "signal_thread.h", # "thread.cc", # "thread.h", # ] } rtc_source_set("socket_factory") { # TODO(bugs.webrtc.org/9987): This build target will soon contain # the following files: # sources = [ # "socket_factory.h", # ] } rtc_source_set("async_socket") { # TODO(bugs.webrtc.org/9987): This build target will soon contain # the following files: # sources = [ # "async_socket.cc", # "async_socket.h", # ] } rtc_source_set("socket") { # TODO(bugs.webrtc.org/9987): This build target will soon contain # the following files: # sources = [ # "socket.cc", # "socket.h", # ] } rtc_source_set("network_constants") { # TODO(bugs.webrtc.org/9987): This build target will soon contain # the following files: # sources = [ # "network_constants.h", # ] } if (is_android) { rtc_source_set("ifaddrs_android") { # TODO(bugs.webrtc.org/9987): This build target will soon contain # the following files: # sources = [ # "ifaddrs_android.cc", # "ifaddrs_android.h", # ] } } if (is_win) { rtc_source_set("win32") { # TODO(bugs.webrtc.org/9987): This build target will soon contain # the following files: # sources = [ # "win32.cc", # "win32.h", # ] } } rtc_library("rtc_base") { visibility = [ "*" ] cflags = [] cflags_cc = [] libs = [] defines = [] deps = [ ":checks", ":deprecation", ":rtc_task_queue", ":stringutils", "../api:array_view", "../api:function_view", "../api:scoped_refptr", "../api/task_queue", "../system_wrappers:field_trial", "network:sent_packet", "synchronization:mutex", "synchronization:sequence_checker", "system:file_wrapper", "system:inline", "system:rtc_export", "task_utils:pending_task_safety_flag", "task_utils:to_queued_task", "third_party/base64", "third_party/sigslot", ] absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container", "//third_party/abseil-cpp/absl/memory", "//third_party/abseil-cpp/absl/strings", "//third_party/abseil-cpp/absl/types:optional", ] public_deps = [ ":rtc_base_approved" ] # no-presubmit-check TODO(webrtc:8603) public_configs = [] sources = [ "async_invoker.cc", "async_invoker.h", "async_invoker_inl.h", "async_packet_socket.cc", "async_packet_socket.h", "async_resolver_interface.cc", "async_resolver_interface.h", "async_socket.cc", "async_socket.h", "async_tcp_socket.cc", "async_tcp_socket.h", "async_udp_socket.cc", "async_udp_socket.h", "crc32.cc", "crc32.h", "crypt_string.cc", "crypt_string.h", "data_rate_limiter.cc", "data_rate_limiter.h", "deprecated/signal_thread.cc", "deprecated/signal_thread.h", "dscp.h", "file_rotating_stream.cc", "file_rotating_stream.h", "helpers.cc", "helpers.h", "http_common.cc", "http_common.h", "ip_address.cc", "ip_address.h", "keep_ref_until_done.h", "mdns_responder_interface.h", "message_digest.cc", "message_digest.h", "message_handler.cc", "message_handler.h", "net_helper.cc", "net_helper.h", "net_helpers.cc", "net_helpers.h", "network.cc", "network.h", "network_constants.cc", "network_constants.h", "network_monitor.cc", "network_monitor.h", "network_route.cc", "network_route.h", "null_socket_server.cc", "null_socket_server.h", "openssl.h", "openssl_adapter.cc", "openssl_adapter.h", "openssl_certificate.cc", "openssl_certificate.h", "openssl_digest.cc", "openssl_digest.h", "openssl_identity.cc", "openssl_identity.h", "openssl_session_cache.cc", "openssl_session_cache.h", "openssl_stream_adapter.cc", "openssl_stream_adapter.h", "openssl_utility.cc", "openssl_utility.h", "physical_socket_server.cc", "physical_socket_server.h", "proxy_info.cc", "proxy_info.h", "rtc_certificate.cc", "rtc_certificate.h", "rtc_certificate_generator.cc", "rtc_certificate_generator.h", "signal_thread.h", "sigslot_repeater.h", "socket.cc", "socket.h", "socket_adapters.cc", "socket_adapters.h", "socket_address.cc", "socket_address.h", "socket_address_pair.cc", "socket_address_pair.h", "socket_factory.h", "socket_server.h", "ssl_adapter.cc", "ssl_adapter.h", "ssl_certificate.cc", "ssl_certificate.h", "ssl_fingerprint.cc", "ssl_fingerprint.h", "ssl_identity.cc", "ssl_identity.h", "ssl_stream_adapter.cc", "ssl_stream_adapter.h", "stream.cc", "stream.h", "thread.cc", "thread.h", "thread_message.h", "unique_id_generator.cc", "unique_id_generator.h", ] if (build_with_chromium) { include_dirs = [ "../../boringssl/src/include" ] public_configs += [ ":rtc_base_chromium_config" ] } else { sources += [ "callback.h", "log_sinks.cc", "log_sinks.h", "numerics/math_utils.h", "rolling_accumulator.h", "ssl_roots.h", ] deps += [ ":rtc_numerics" ] if (is_win) { sources += [ "win32_socket_init.h" ] if (current_os != "winuwp") { sources += [ "win32_socket_server.cc", "win32_socket_server.h", ] } } } # !build_with_chromium if (rtc_build_ssl) { deps += [ "//third_party/boringssl" ] } else { configs += [ ":external_ssl_library" ] } if (is_android) { sources += [ "ifaddrs_android.cc", "ifaddrs_android.h", ] libs += [ "log", "GLESv2", ] } if (is_ios || is_mac) { sources += [ "mac_ifaddrs_converter.cc" ] deps += [ "system:cocoa_threading" ] } if (is_linux) { libs += [ "dl", "rt", ] } if (is_ios) { frameworks = [ "CFNetwork.framework", "Foundation.framework", "Security.framework", "SystemConfiguration.framework", "UIKit.framework", ] } if (is_win) { sources += [ "win32.cc", "win32.h", "win32_window.cc", "win32_window.h", ] libs += [ "crypt32.lib", "iphlpapi.lib", "secur32.lib", ] defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ] } if (is_posix || is_fuchsia) { sources += [ "ifaddrs_converter.cc", "ifaddrs_converter.h", ] } if (is_nacl) { public_deps += # no-presubmit-check TODO(webrtc:8603) [ "//native_client_sdk/src/libraries/nacl_io" ] defines += [ "timezone=_timezone" ] sources -= [ "ifaddrs_converter.cc" ] } } rtc_source_set("gtest_prod") { sources = [ "gtest_prod_util.h" ] } rtc_library("gunit_helpers") { testonly = true sources = [ "gunit.cc", "gunit.h", ] deps = [ ":logging", ":rtc_base", ":rtc_base_tests_utils", ":stringutils", "../test:test_support", ] absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] } rtc_library("testclient") { testonly = true sources = [ "test_client.cc", "test_client.h", ] deps = [ ":criticalsection", ":gunit_helpers", ":macromagic", ":rtc_base", ":rtc_base_tests_utils", ":timeutils", "synchronization:mutex", ] } rtc_library("rtc_base_tests_utils") { testonly = true sources = [ "cpu_time.cc", "cpu_time.h", "fake_clock.cc", "fake_clock.h", "fake_mdns_responder.h", "fake_network.h", "fake_ssl_identity.cc", "fake_ssl_identity.h", "firewall_socket_server.cc", "firewall_socket_server.h", "memory_stream.cc", "memory_stream.h", "memory_usage.cc", "memory_usage.h", "nat_server.cc", "nat_server.h", "nat_socket_factory.cc", "nat_socket_factory.h", "nat_types.cc", "nat_types.h", "proxy_server.cc", "proxy_server.h", "server_socket_adapters.cc", "server_socket_adapters.h", "sigslot_tester.h", "socket_stream.cc", "socket_stream.h", "test_base64.h", "test_certificate_verifier.h", "test_echo_server.cc", "test_echo_server.h", "test_utils.cc", "test_utils.h", "virtual_socket_server.cc", "virtual_socket_server.h", ] deps = [ ":checks", ":rtc_base", "../api/units:time_delta", "../api/units:timestamp", "memory:fifo_buffer", "synchronization:mutex", "third_party/sigslot", ] absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container", "//third_party/abseil-cpp/absl/memory", ] } rtc_library("task_queue_for_test") { testonly = true sources = [ "task_queue_for_test.cc", "task_queue_for_test.h", ] deps = [ ":checks", ":macromagic", ":rtc_base_approved", ":rtc_event", ":rtc_task_queue", "../api/task_queue", "../api/task_queue:default_task_queue_factory", "task_utils:to_queued_task", ] absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] } if (rtc_include_tests) { rtc_library("sigslot_unittest") { testonly = true sources = [ "sigslot_unittest.cc" ] deps = [ ":gunit_helpers", ":rtc_base", ":rtc_base_tests_utils", "../test:test_support", "synchronization:mutex", "third_party/sigslot", ] } rtc_library("rtc_base_nonparallel_tests") { testonly = true sources = [ "cpu_time_unittest.cc", "file_rotating_stream_unittest.cc", "null_socket_server_unittest.cc", "physical_socket_server_unittest.cc", "socket_address_unittest.cc", "socket_unittest.cc", "socket_unittest.h", ] deps = [ ":checks", ":gunit_helpers", ":rtc_base", ":rtc_base_tests_utils", ":testclient", "../system_wrappers", "../test:fileutils", "../test:test_main", "../test:test_support", "third_party/sigslot", "//testing/gtest", ] absl_deps = [ "//third_party/abseil-cpp/absl/memory" ] if (is_win) { sources += [ "win32_socket_server_unittest.cc" ] } } rtc_library("rtc_base_approved_unittests") { testonly = true sources = [ "atomic_ops_unittest.cc", "base64_unittest.cc", "bind_unittest.cc", "bit_buffer_unittest.cc", "bounded_inline_vector_unittest.cc", "buffer_queue_unittest.cc", "buffer_unittest.cc", "byte_buffer_unittest.cc", "byte_order_unittest.cc", "checks_unittest.cc", "copy_on_write_buffer_unittest.cc", "deprecated/recursive_critical_section_unittest.cc", "event_tracer_unittest.cc", "event_unittest.cc", "logging_unittest.cc", "numerics/divide_round_unittest.cc", "numerics/histogram_percentile_counter_unittest.cc", "numerics/mod_ops_unittest.cc", "numerics/moving_max_counter_unittest.cc", "numerics/safe_compare_unittest.cc", "numerics/safe_minmax_unittest.cc", "numerics/sample_counter_unittest.cc", "one_time_event_unittest.cc", "platform_thread_unittest.cc", "random_unittest.cc", "rate_limiter_unittest.cc", "rate_statistics_unittest.cc", "rate_tracker_unittest.cc", "ref_counted_object_unittest.cc", "sanitizer_unittest.cc", "string_encode_unittest.cc", "string_to_number_unittest.cc", "string_utils_unittest.cc", "stringize_macros_unittest.cc", "strings/string_builder_unittest.cc", "strings/string_format_unittest.cc", "swap_queue_unittest.cc", "thread_annotations_unittest.cc", "thread_checker_unittest.cc", "time_utils_unittest.cc", "timestamp_aligner_unittest.cc", "virtual_socket_unittest.cc", "zero_memory_unittest.cc", ] if (is_win) { sources += [ "win/windows_version_unittest.cc" ] } deps = [ ":bounded_inline_vector", ":checks", ":divide_round", ":gunit_helpers", ":rate_limiter", ":rtc_base", ":rtc_base_approved", ":rtc_base_tests_utils", ":rtc_task_queue", ":safe_compare", ":safe_minmax", ":sanitizer", ":stringutils", ":testclient", "../api:array_view", "../api:scoped_refptr", "../api/units:time_delta", "../system_wrappers", "../test:fileutils", "../test:test_main", "../test:test_support", "memory:unittests", "synchronization:mutex", "task_utils:to_queued_task", "third_party/base64", "third_party/sigslot", ] absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers", "//third_party/abseil-cpp/absl/memory", ] } rtc_library("rtc_task_queue_unittests") { testonly = true sources = [ "task_queue_unittest.cc" ] deps = [ ":gunit_helpers", ":rtc_base_approved", ":rtc_base_tests_utils", ":rtc_task_queue", ":task_queue_for_test", "../test:test_main", "../test:test_support", ] absl_deps = [ "//third_party/abseil-cpp/absl/memory" ] } rtc_library("rtc_operations_chain_unittests") { testonly = true sources = [ "operations_chain_unittest.cc" ] deps = [ ":rtc_base", ":rtc_base_approved", ":rtc_event", ":rtc_operations_chain", "../test:test_support", ] } rtc_library("weak_ptr_unittests") { testonly = true sources = [ "weak_ptr_unittest.cc" ] deps = [ ":gunit_helpers", ":rtc_base_approved", ":rtc_base_tests_utils", ":rtc_event", ":task_queue_for_test", ":weak_ptr", "../test:test_main", "../test:test_support", ] } rtc_library("rtc_numerics_unittests") { testonly = true sources = [ "numerics/event_based_exponential_moving_average_unittest.cc", "numerics/exp_filter_unittest.cc", "numerics/moving_average_unittest.cc", "numerics/moving_median_filter_unittest.cc", "numerics/percentile_filter_unittest.cc", "numerics/running_statistics_unittest.cc", "numerics/samples_stats_counter_unittest.cc", "numerics/sequence_number_util_unittest.cc", ] deps = [ ":rtc_base_approved", ":rtc_numerics", "../test:test_main", "../test:test_support", ] absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ] } rtc_library("rtc_json_unittests") { testonly = true sources = [ "strings/json_unittest.cc" ] deps = [ ":gunit_helpers", ":rtc_base_tests_utils", ":rtc_json", "../test:test_main", "../test:test_support", ] } rtc_library("rtc_base_unittests") { testonly = true defines = [] sources = [ "callback_unittest.cc", "crc32_unittest.cc", "data_rate_limiter_unittest.cc", "deprecated/signal_thread_unittest.cc", "fake_clock_unittest.cc", "helpers_unittest.cc", "ip_address_unittest.cc", "memory_usage_unittest.cc", "message_digest_unittest.cc", "nat_unittest.cc", "network_route_unittest.cc", "network_unittest.cc", "proxy_unittest.cc", "rolling_accumulator_unittest.cc", "rtc_certificate_generator_unittest.cc", "rtc_certificate_unittest.cc", "sigslot_tester_unittest.cc", "test_client_unittest.cc", "thread_unittest.cc", "unique_id_generator_unittest.cc", ] if (is_win) { sources += [ "win32_unittest.cc", "win32_window_unittest.cc", ] } if (is_posix || is_fuchsia) { sources += [ "openssl_adapter_unittest.cc", "openssl_session_cache_unittest.cc", "openssl_utility_unittest.cc", "ssl_adapter_unittest.cc", "ssl_identity_unittest.cc", "ssl_stream_adapter_unittest.cc", ] } deps = [ ":checks", ":gunit_helpers", ":rtc_base_tests_utils", ":stringutils", ":testclient", "../api:array_view", "../api/task_queue", "../api/task_queue:task_queue_test", "../test:field_trial", "../test:fileutils", "../test:rtc_expect_death", "../test:test_main", "../test:test_support", "memory:fifo_buffer", "synchronization:mutex", "synchronization:synchronization_unittests", "task_utils:to_queued_task", "third_party/sigslot", ] absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container", "//third_party/abseil-cpp/absl/memory", "//third_party/abseil-cpp/absl/strings", "//third_party/abseil-cpp/absl/types:optional", ] public_deps = [ ":rtc_base" ] # no-presubmit-check TODO(webrtc:8603) if (build_with_chromium) { include_dirs = [ "../../boringssl/src/include" ] } if (rtc_build_ssl) { deps += [ "//third_party/boringssl" ] } else { configs += [ ":external_ssl_library" ] } } } if (is_android) { rtc_android_library("base_java") { visibility = [ "*" ] sources = [ "java/src/org/webrtc/ContextUtils.java", "java/src/org/webrtc/Loggable.java", "java/src/org/webrtc/Logging.java", "java/src/org/webrtc/Size.java", "java/src/org/webrtc/ThreadUtils.java", ] deps = [ "//third_party/android_deps:com_android_support_support_annotations_java", ] } }