Specifically, they handle all combinations of two integer and two floating-point arguments by picking a result type that is guaranteed to be able to hold the result. This means callers no longer have to deal with potentially dangerous casting to make all the arguments have the same type, like they have to with std::min() and std::max(). Also, they're constexpr. Mostly for illustrative purposes, this CL replaces a few std::min() and std::max() calls with SafeMin() and SafeMax(). BUG=webrtc:7459 Review-Url: https://codereview.webrtc.org/2810483002 Cr-Commit-Position: refs/heads/master@{#17869}
963 lines
24 KiB
Plaintext
963 lines
24 KiB
Plaintext
# 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")
|
|
}
|
|
if (is_win) {
|
|
import("//build/config/clang/clang.gni")
|
|
}
|
|
|
|
group("base") {
|
|
public_deps = [
|
|
":rtc_base",
|
|
":rtc_base_approved",
|
|
":rtc_task_queue",
|
|
]
|
|
if (is_android) {
|
|
public_deps += [ ":base_java" ]
|
|
}
|
|
}
|
|
|
|
config("rtc_base_approved_all_dependent_config") {
|
|
if (is_mac && !build_with_chromium) {
|
|
libs = [ "Foundation.framework" ] # needed for logging_mac.mm
|
|
}
|
|
}
|
|
|
|
config("rtc_base_chromium_config") {
|
|
defines = [ "NO_MAIN_THREAD_WRAPPING" ]
|
|
}
|
|
|
|
config("rtc_base_all_dependent_config") {
|
|
if (is_ios) {
|
|
libs = [
|
|
"CFNetwork.framework",
|
|
|
|
#"Foundation.framework", # Already in //build/config:default_libs.
|
|
"Security.framework",
|
|
"SystemConfiguration.framework",
|
|
"UIKit.framework",
|
|
]
|
|
}
|
|
if (is_mac) {
|
|
libs = [
|
|
"Cocoa.framework",
|
|
"Foundation.framework",
|
|
"IOKit.framework",
|
|
"Security.framework",
|
|
"SystemConfiguration.framework",
|
|
]
|
|
}
|
|
}
|
|
|
|
if (is_linux && !build_with_chromium) {
|
|
# Provides the same functionality as the //crypto:platform target, which
|
|
# WebRTC cannot use as we don't sync src/crypto from Chromium.
|
|
group("linux_system_ssl") {
|
|
deps = [
|
|
"//third_party/boringssl",
|
|
]
|
|
}
|
|
}
|
|
|
|
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 ]
|
|
}
|
|
}
|
|
|
|
source_set("protobuf_utils") {
|
|
sources = [
|
|
"protobuf_utils.h",
|
|
]
|
|
if (rtc_enable_protobuf) {
|
|
public_deps = [
|
|
"//third_party/protobuf:protobuf_lite",
|
|
]
|
|
}
|
|
}
|
|
|
|
# The subset of rtc_base approved for use outside of libjingle.
|
|
rtc_static_library("rtc_base_approved") {
|
|
defines = []
|
|
libs = []
|
|
deps = []
|
|
all_dependent_configs = [ ":rtc_base_approved_all_dependent_config" ]
|
|
|
|
sources = [
|
|
"array_view.h",
|
|
"arraysize.h",
|
|
"atomicops.h",
|
|
"base64.cc",
|
|
"base64.h",
|
|
"basictypes.h",
|
|
"bind.h",
|
|
"bitbuffer.cc",
|
|
"bitbuffer.h",
|
|
"buffer.h",
|
|
"bufferqueue.cc",
|
|
"bufferqueue.h",
|
|
"bytebuffer.cc",
|
|
"bytebuffer.h",
|
|
"byteorder.h",
|
|
"checks.cc",
|
|
"checks.h",
|
|
"constructormagic.h",
|
|
"copyonwritebuffer.cc",
|
|
"copyonwritebuffer.h",
|
|
"criticalsection.cc",
|
|
"criticalsection.h",
|
|
"deprecation.h",
|
|
"event.cc",
|
|
"event.h",
|
|
"event_tracer.cc",
|
|
"event_tracer.h",
|
|
"file.cc",
|
|
"file.h",
|
|
"flags.cc",
|
|
"flags.h",
|
|
"format_macros.h",
|
|
"function_view.h",
|
|
"ignore_wundef.h",
|
|
"location.cc",
|
|
"location.h",
|
|
"md5.cc",
|
|
"md5.h",
|
|
"md5digest.cc",
|
|
"md5digest.h",
|
|
"mod_ops.h",
|
|
"onetimeevent.h",
|
|
"optional.cc",
|
|
"optional.h",
|
|
"pathutils.cc",
|
|
"pathutils.h",
|
|
"platform_file.cc",
|
|
"platform_file.h",
|
|
"platform_thread.cc",
|
|
"platform_thread.h",
|
|
"platform_thread_types.h",
|
|
"ptr_util.h",
|
|
"race_checker.cc",
|
|
"race_checker.h",
|
|
"random.cc",
|
|
"random.h",
|
|
"rate_limiter.cc",
|
|
"rate_limiter.h",
|
|
"rate_statistics.cc",
|
|
"rate_statistics.h",
|
|
"ratetracker.cc",
|
|
"ratetracker.h",
|
|
"refcount.h",
|
|
"refcountedobject.h",
|
|
"safe_compare.h",
|
|
"safe_conversions.h",
|
|
"safe_conversions_impl.h",
|
|
"safe_minmax.h",
|
|
"sanitizer.h",
|
|
"scoped_ref_ptr.h",
|
|
"string_to_number.cc",
|
|
"string_to_number.h",
|
|
"stringencode.cc",
|
|
"stringencode.h",
|
|
"stringutils.cc",
|
|
"stringutils.h",
|
|
"swap_queue.h",
|
|
"template_util.h",
|
|
"thread_annotations.h",
|
|
"thread_checker.h",
|
|
"thread_checker_impl.cc",
|
|
"thread_checker_impl.h",
|
|
"timestampaligner.cc",
|
|
"timestampaligner.h",
|
|
"timeutils.cc",
|
|
"timeutils.h",
|
|
"trace_event.h",
|
|
"type_traits.h",
|
|
]
|
|
|
|
if (is_android) {
|
|
libs += [ "log" ]
|
|
}
|
|
|
|
if (is_posix) {
|
|
sources += [ "file_posix.cc" ]
|
|
}
|
|
|
|
if (is_win) {
|
|
sources += [ "file_win.cc" ]
|
|
}
|
|
|
|
if (build_with_chromium) {
|
|
# Dependency on chromium's logging (in //base).
|
|
deps += [ "//base:base" ]
|
|
sources += [
|
|
"../../webrtc_overrides/webrtc/base/logging.cc",
|
|
"../../webrtc_overrides/webrtc/base/logging.h",
|
|
]
|
|
} else {
|
|
sources += [
|
|
"logging.cc",
|
|
"logging.h",
|
|
"logging_mac.mm",
|
|
]
|
|
}
|
|
if (is_component_build && is_win) {
|
|
# Copy the VS runtime DLLs into the isolate so that they don't have to be
|
|
# preinstalled on the target machine. The debug runtimes have a "d" at
|
|
# the end.
|
|
# This is a copy of https://codereview.chromium.org/1783973002.
|
|
# TODO(ehmaldonado): We'd like Chromium to make this changes easier to use,
|
|
# so we don't have to copy their changes and risk breakages.
|
|
# See http://crbug.com/653569
|
|
if (is_debug) {
|
|
vcrt_suffix = "d"
|
|
} else {
|
|
vcrt_suffix = ""
|
|
}
|
|
|
|
# These runtime files are copied to the output directory by the
|
|
# vs_toolchain script that runs as part of toolchain configuration.
|
|
data = [
|
|
"$root_out_dir/msvcp140${vcrt_suffix}.dll",
|
|
"$root_out_dir/vccorlib140${vcrt_suffix}.dll",
|
|
"$root_out_dir/vcruntime140${vcrt_suffix}.dll",
|
|
|
|
# Universal Windows 10 CRT files
|
|
"$root_out_dir/api-ms-win-core-console-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-datetime-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-debug-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-errorhandling-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-file-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-file-l1-2-0.dll",
|
|
"$root_out_dir/api-ms-win-core-file-l2-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-handle-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-heap-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-interlocked-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-libraryloader-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-localization-l1-2-0.dll",
|
|
"$root_out_dir/api-ms-win-core-memory-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-namedpipe-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-processenvironment-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-processthreads-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-processthreads-l1-1-1.dll",
|
|
"$root_out_dir/api-ms-win-core-profile-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-rtlsupport-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-string-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-synch-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-synch-l1-2-0.dll",
|
|
"$root_out_dir/api-ms-win-core-sysinfo-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-timezone-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-util-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-conio-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-convert-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-environment-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-filesystem-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-heap-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-locale-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-math-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-multibyte-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-private-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-process-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-runtime-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-stdio-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-string-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-time-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-utility-l1-1-0.dll",
|
|
"$root_out_dir/ucrtbase${vcrt_suffix}.dll",
|
|
]
|
|
if (is_asan) {
|
|
if (current_cpu == "x64") {
|
|
data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-x86_64.dll" ]
|
|
} else {
|
|
data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-i386.dll" ]
|
|
}
|
|
}
|
|
}
|
|
if (is_nacl) {
|
|
deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
|
|
}
|
|
}
|
|
|
|
config("enable_libevent_config") {
|
|
defines = [ "WEBRTC_BUILD_LIBEVENT" ]
|
|
}
|
|
|
|
rtc_static_library("rtc_task_queue") {
|
|
public_deps = [
|
|
":rtc_base_approved",
|
|
]
|
|
|
|
sources = [
|
|
"sequenced_task_checker.h",
|
|
"sequenced_task_checker_impl.cc",
|
|
"sequenced_task_checker_impl.h",
|
|
"weak_ptr.cc",
|
|
"weak_ptr.h",
|
|
]
|
|
|
|
if (build_with_chromium) {
|
|
sources += [
|
|
"../../webrtc_overrides/webrtc/base/task_queue.cc",
|
|
"../../webrtc_overrides/webrtc/base/task_queue.h",
|
|
]
|
|
} else {
|
|
sources += [
|
|
"task_queue.h",
|
|
"task_queue_posix.h",
|
|
]
|
|
if (rtc_build_libevent) {
|
|
deps = [
|
|
"//base/third_party/libevent",
|
|
]
|
|
}
|
|
|
|
if (rtc_enable_libevent) {
|
|
sources += [
|
|
"task_queue_libevent.cc",
|
|
"task_queue_posix.cc",
|
|
]
|
|
all_dependent_configs = [ ":enable_libevent_config" ]
|
|
} else {
|
|
if (is_mac || is_ios) {
|
|
sources += [
|
|
"task_queue_gcd.cc",
|
|
"task_queue_posix.cc",
|
|
]
|
|
}
|
|
if (is_win) {
|
|
sources += [ "task_queue_win.cc" ]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
rtc_static_library("rtc_numerics") {
|
|
sources = [
|
|
"numerics/exp_filter.cc",
|
|
"numerics/exp_filter.h",
|
|
"numerics/percentile_filter.h",
|
|
]
|
|
deps = [
|
|
":rtc_base_approved",
|
|
]
|
|
}
|
|
|
|
config("rtc_base_warnings_config") {
|
|
if (is_win && is_clang) {
|
|
cflags = [
|
|
# Disable warnings failing when compiling with Clang on Windows.
|
|
# https://bugs.chromium.org/p/webrtc/issues/detail?id=5366
|
|
"-Wno-sign-compare",
|
|
"-Wno-missing-braces",
|
|
]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("rtc_json") {
|
|
defines = []
|
|
sources = [
|
|
"json.cc",
|
|
"json.h",
|
|
]
|
|
if (rtc_build_json) {
|
|
public_deps = [
|
|
"//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_static_library("rtc_base") {
|
|
cflags = []
|
|
cflags_cc = []
|
|
libs = []
|
|
defines = []
|
|
deps = [
|
|
"..:webrtc_common",
|
|
]
|
|
public_deps = [
|
|
":rtc_base_approved",
|
|
]
|
|
public_configs = []
|
|
|
|
all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
|
|
|
|
sources = [
|
|
"applefilesystem.mm",
|
|
"asyncinvoker-inl.h",
|
|
"asyncinvoker.cc",
|
|
"asyncinvoker.h",
|
|
"asyncpacketsocket.cc",
|
|
"asyncpacketsocket.h",
|
|
"asyncresolverinterface.cc",
|
|
"asyncresolverinterface.h",
|
|
"asyncsocket.cc",
|
|
"asyncsocket.h",
|
|
"asynctcpsocket.cc",
|
|
"asynctcpsocket.h",
|
|
"asyncudpsocket.cc",
|
|
"asyncudpsocket.h",
|
|
"crc32.cc",
|
|
"crc32.h",
|
|
"cryptstring.cc",
|
|
"cryptstring.h",
|
|
"filerotatingstream.cc",
|
|
"filerotatingstream.h",
|
|
"fileutils.cc",
|
|
"fileutils.h",
|
|
"gunit_prod.h",
|
|
"helpers.cc",
|
|
"helpers.h",
|
|
"httpbase.cc",
|
|
"httpbase.h",
|
|
"httpcommon-inl.h",
|
|
"httpcommon.cc",
|
|
"httpcommon.h",
|
|
"ipaddress.cc",
|
|
"ipaddress.h",
|
|
"messagedigest.cc",
|
|
"messagedigest.h",
|
|
"messagehandler.cc",
|
|
"messagehandler.h",
|
|
"messagequeue.cc",
|
|
"messagequeue.h",
|
|
"nethelpers.cc",
|
|
"nethelpers.h",
|
|
"network.cc",
|
|
"network.h",
|
|
"networkmonitor.cc",
|
|
"networkmonitor.h",
|
|
"nullsocketserver.cc",
|
|
"nullsocketserver.h",
|
|
"openssl.h",
|
|
"openssladapter.cc",
|
|
"openssladapter.h",
|
|
"openssldigest.cc",
|
|
"openssldigest.h",
|
|
"opensslidentity.cc",
|
|
"opensslidentity.h",
|
|
"opensslstreamadapter.cc",
|
|
"opensslstreamadapter.h",
|
|
"physicalsocketserver.cc",
|
|
"physicalsocketserver.h",
|
|
"proxyinfo.cc",
|
|
"proxyinfo.h",
|
|
"ratelimiter.cc",
|
|
"ratelimiter.h",
|
|
"rtccertificate.cc",
|
|
"rtccertificate.h",
|
|
"rtccertificategenerator.cc",
|
|
"rtccertificategenerator.h",
|
|
"sha1.cc",
|
|
"sha1.h",
|
|
"sha1digest.cc",
|
|
"sha1digest.h",
|
|
"sharedexclusivelock.cc",
|
|
"sharedexclusivelock.h",
|
|
"signalthread.cc",
|
|
"signalthread.h",
|
|
"sigslot.cc",
|
|
"sigslot.h",
|
|
"sigslotrepeater.h",
|
|
"socket.h",
|
|
"socketadapters.cc",
|
|
"socketadapters.h",
|
|
"socketaddress.cc",
|
|
"socketaddress.h",
|
|
"socketaddresspair.cc",
|
|
"socketaddresspair.h",
|
|
"socketfactory.h",
|
|
"socketserver.h",
|
|
"socketstream.cc",
|
|
"socketstream.h",
|
|
"ssladapter.cc",
|
|
"ssladapter.h",
|
|
"sslfingerprint.cc",
|
|
"sslfingerprint.h",
|
|
"sslidentity.cc",
|
|
"sslidentity.h",
|
|
"sslstreamadapter.cc",
|
|
"sslstreamadapter.h",
|
|
"stream.cc",
|
|
"stream.h",
|
|
"thread.cc",
|
|
"thread.h",
|
|
]
|
|
|
|
# TODO(henrike): issue 3307, make rtc_base build with the Chromium default
|
|
# compiler settings.
|
|
suppressed_configs += [ "//build/config/compiler:chromium_code" ]
|
|
configs += [ "//build/config/compiler:no_chromium_code" ]
|
|
if (!is_win) {
|
|
cflags += [ "-Wno-uninitialized" ]
|
|
}
|
|
|
|
if (build_with_chromium) {
|
|
if (is_win) {
|
|
sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
|
|
}
|
|
include_dirs = [ "../../boringssl/src/include" ]
|
|
public_configs += [ ":rtc_base_chromium_config" ]
|
|
} else {
|
|
configs += [ ":rtc_base_warnings_config" ]
|
|
sources += [
|
|
"callback.h",
|
|
"logsinks.cc",
|
|
"logsinks.h",
|
|
"mathutils.h",
|
|
"optionsfile.cc",
|
|
"optionsfile.h",
|
|
"rollingaccumulator.h",
|
|
"sslroots.h",
|
|
"testbase64.h",
|
|
"testclient.cc",
|
|
"testclient.h",
|
|
"transformadapter.cc",
|
|
"transformadapter.h",
|
|
"virtualsocketserver.cc",
|
|
"virtualsocketserver.h",
|
|
"window.h",
|
|
]
|
|
|
|
if (is_win) {
|
|
sources += [
|
|
"win32socketinit.cc",
|
|
"win32socketinit.h",
|
|
"win32socketserver.cc",
|
|
"win32socketserver.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 += [
|
|
"macifaddrs_converter.cc",
|
|
"thread_darwin.mm",
|
|
]
|
|
}
|
|
|
|
if (use_x11) {
|
|
libs += [
|
|
"dl",
|
|
"rt",
|
|
"Xext",
|
|
"X11",
|
|
"Xcomposite",
|
|
"Xrender",
|
|
]
|
|
}
|
|
|
|
if (is_linux) {
|
|
libs += [
|
|
"dl",
|
|
"rt",
|
|
]
|
|
}
|
|
|
|
if (is_mac) {
|
|
sources += [
|
|
"macutils.cc",
|
|
"macutils.h",
|
|
]
|
|
libs += [
|
|
# For ProcessInformationCopyDictionary in unixfilesystem.cc.
|
|
"ApplicationServices.framework",
|
|
]
|
|
}
|
|
|
|
if (is_win) {
|
|
sources += [
|
|
"win32.cc",
|
|
"win32.h",
|
|
"win32filesystem.cc",
|
|
"win32filesystem.h",
|
|
"win32securityerrors.cc",
|
|
"win32window.cc",
|
|
"win32window.h",
|
|
"winping.cc",
|
|
"winping.h",
|
|
]
|
|
|
|
libs += [
|
|
"crypt32.lib",
|
|
"iphlpapi.lib",
|
|
"secur32.lib",
|
|
]
|
|
|
|
cflags += [
|
|
# Suppress warnings about WIN32_LEAN_AND_MEAN.
|
|
"/wd4005",
|
|
"/wd4703",
|
|
]
|
|
|
|
defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
|
|
}
|
|
|
|
if (is_posix) {
|
|
sources += [
|
|
"ifaddrs_converter.cc",
|
|
"ifaddrs_converter.h",
|
|
"unixfilesystem.cc",
|
|
"unixfilesystem.h",
|
|
]
|
|
}
|
|
|
|
if (is_nacl) {
|
|
deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
|
|
defines += [ "timezone=_timezone" ]
|
|
sources -= [ "ifaddrs_converter.cc" ]
|
|
}
|
|
if (is_win && is_clang) {
|
|
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
|
|
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("gtest_prod") {
|
|
sources = [
|
|
"gtest_prod_util.h",
|
|
]
|
|
}
|
|
|
|
if (rtc_include_tests) {
|
|
config("rtc_base_tests_utils_exported_config") {
|
|
defines = [ "GTEST_RELATIVE_PATH" ]
|
|
}
|
|
|
|
config("rtc_base_tests_utils_warnings_config") {
|
|
if (is_win && is_clang) {
|
|
cflags = [
|
|
# See https://bugs.chromium.org/p/webrtc/issues/detail?id=6270
|
|
"-Wno-reorder",
|
|
"-Wno-sign-compare",
|
|
]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("rtc_base_tests_main") {
|
|
testonly = true
|
|
sources = [
|
|
"unittest_main.cc",
|
|
]
|
|
public_configs = [ ":rtc_base_tests_utils_exported_config" ]
|
|
deps = [
|
|
":rtc_base_tests_utils",
|
|
]
|
|
public_deps = [
|
|
"//testing/gmock",
|
|
"//testing/gtest",
|
|
]
|
|
|
|
if (!build_with_chromium && is_clang) {
|
|
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
|
|
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("rtc_base_tests_utils") {
|
|
testonly = true
|
|
sources = [
|
|
# Also use this as a convenient dumping ground for misc files that are
|
|
# included by multiple targets below.
|
|
"cpu_time.cc",
|
|
"cpu_time.h",
|
|
"fakeclock.cc",
|
|
"fakeclock.h",
|
|
"fakenetwork.h",
|
|
"fakesslidentity.h",
|
|
"firewallsocketserver.cc",
|
|
"firewallsocketserver.h",
|
|
"gunit.h",
|
|
"httpserver.cc",
|
|
"httpserver.h",
|
|
"memory_usage.cc",
|
|
"memory_usage.h",
|
|
"natserver.cc",
|
|
"natserver.h",
|
|
"natsocketfactory.cc",
|
|
"natsocketfactory.h",
|
|
"nattypes.cc",
|
|
"nattypes.h",
|
|
"proxyserver.cc",
|
|
"proxyserver.h",
|
|
"sigslottester.h",
|
|
"sigslottester.h.pump",
|
|
"testbase64.h",
|
|
"testechoserver.h",
|
|
"testutils.h",
|
|
"timedelta.h",
|
|
]
|
|
configs += [ ":rtc_base_tests_utils_warnings_config" ]
|
|
public_configs = [ ":rtc_base_tests_utils_exported_config" ]
|
|
deps = [
|
|
":rtc_base",
|
|
"../test:field_trial",
|
|
"../test:test_support",
|
|
]
|
|
public_deps = [
|
|
"//testing/gmock",
|
|
"//testing/gtest",
|
|
]
|
|
|
|
if (!build_with_chromium && is_clang) {
|
|
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
|
|
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("rtc_base_nonparallel_tests") {
|
|
testonly = true
|
|
|
|
# Skip restricting visibility on mobile platforms since the tests on those
|
|
# gets additional generated targets which would require many lines here to
|
|
# cover (which would be confusing to read and hard to maintain).
|
|
if (!is_android && !is_ios) {
|
|
visibility = [ "//webrtc:webrtc_nonparallel_tests" ]
|
|
}
|
|
sources = [
|
|
"cpu_time_unittest.cc",
|
|
"filerotatingstream_unittest.cc",
|
|
"nullsocketserver_unittest.cc",
|
|
"physicalsocketserver_unittest.cc",
|
|
"socket_unittest.cc",
|
|
"socket_unittest.h",
|
|
"socketaddress_unittest.cc",
|
|
"virtualsocket_unittest.cc",
|
|
]
|
|
deps = [
|
|
":rtc_base",
|
|
":rtc_base_tests_main",
|
|
"//testing/gtest",
|
|
]
|
|
if (is_win) {
|
|
sources += [ "win32socketserver_unittest.cc" ]
|
|
}
|
|
|
|
if (!build_with_chromium && is_clang) {
|
|
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
|
|
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("rtc_base_approved_unittests") {
|
|
testonly = true
|
|
|
|
# Skip restricting visibility on mobile platforms since the tests on those
|
|
# gets additional generated targets which would require many lines here to
|
|
# cover (which would be confusing to read and hard to maintain).
|
|
if (!is_android && !is_ios) {
|
|
visibility = [ "//webrtc:rtc_unittests" ]
|
|
}
|
|
sources = [
|
|
"array_view_unittest.cc",
|
|
"atomicops_unittest.cc",
|
|
"base64_unittest.cc",
|
|
"basictypes_unittest.cc",
|
|
"bind_unittest.cc",
|
|
"bitbuffer_unittest.cc",
|
|
"buffer_unittest.cc",
|
|
"bufferqueue_unittest.cc",
|
|
"bytebuffer_unittest.cc",
|
|
"byteorder_unittest.cc",
|
|
"copyonwritebuffer_unittest.cc",
|
|
"criticalsection_unittest.cc",
|
|
"event_tracer_unittest.cc",
|
|
"event_unittest.cc",
|
|
"file_unittest.cc",
|
|
"function_view_unittest.cc",
|
|
"logging_unittest.cc",
|
|
"md5digest_unittest.cc",
|
|
"mod_ops_unittest.cc",
|
|
"onetimeevent_unittest.cc",
|
|
"optional_unittest.cc",
|
|
"pathutils_unittest.cc",
|
|
"platform_thread_unittest.cc",
|
|
"random_unittest.cc",
|
|
"rate_limiter_unittest.cc",
|
|
"rate_statistics_unittest.cc",
|
|
"ratetracker_unittest.cc",
|
|
"refcountedobject_unittest.cc",
|
|
"safe_compare_unittest.cc",
|
|
"safe_minmax_unittest.cc",
|
|
"string_to_number_unittest.cc",
|
|
"stringencode_unittest.cc",
|
|
"stringutils_unittest.cc",
|
|
"swap_queue_unittest.cc",
|
|
"thread_annotations_unittest.cc",
|
|
"thread_checker_unittest.cc",
|
|
"timestampaligner_unittest.cc",
|
|
"timeutils_unittest.cc",
|
|
]
|
|
deps = [
|
|
":rtc_base_approved",
|
|
":rtc_base_tests_main",
|
|
]
|
|
if (!build_with_chromium && is_clang) {
|
|
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
|
|
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("rtc_task_queue_unittests") {
|
|
testonly = true
|
|
|
|
# Skip restricting visibility on mobile platforms since the tests on those
|
|
# gets additional generated targets which would require many lines here to
|
|
# cover (which would be confusing to read and hard to maintain).
|
|
if (!is_android && !is_ios) {
|
|
visibility = [ "//webrtc:rtc_unittests" ]
|
|
}
|
|
sources = [
|
|
"sequenced_task_checker_unittest.cc",
|
|
"task_queue_unittest.cc",
|
|
"weak_ptr_unittest.cc",
|
|
]
|
|
deps = [
|
|
":rtc_base_tests_main",
|
|
":rtc_task_queue",
|
|
]
|
|
if (!build_with_chromium && is_clang) {
|
|
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
|
|
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("rtc_numerics_unittests") {
|
|
testonly = true
|
|
|
|
# Skip restricting visibility on mobile platforms since the tests on those
|
|
# gets additional generated targets which would require many lines here to
|
|
# cover (which would be confusing to read and hard to maintain).
|
|
if (!is_android && !is_ios) {
|
|
visibility = [ "//webrtc:rtc_unittests" ]
|
|
}
|
|
sources = [
|
|
"numerics/exp_filter_unittest.cc",
|
|
"numerics/percentile_filter_unittest.cc",
|
|
]
|
|
deps = [
|
|
":rtc_base_tests_main",
|
|
":rtc_numerics",
|
|
]
|
|
}
|
|
|
|
config("rtc_base_unittests_config") {
|
|
if (is_clang) {
|
|
cflags = [ "-Wno-unused-const-variable" ]
|
|
}
|
|
}
|
|
rtc_source_set("rtc_base_unittests") {
|
|
testonly = true
|
|
|
|
# Skip restricting visibility on mobile platforms since the tests on those
|
|
# gets additional generated targets which would require many lines here to
|
|
# cover (which would be confusing to read and hard to maintain).
|
|
if (!is_android && !is_ios) {
|
|
visibility = [ "//webrtc:rtc_unittests" ]
|
|
}
|
|
sources = [
|
|
"callback_unittest.cc",
|
|
"crc32_unittest.cc",
|
|
"fileutils_unittest.cc",
|
|
"helpers_unittest.cc",
|
|
"httpbase_unittest.cc",
|
|
"httpcommon_unittest.cc",
|
|
"httpserver_unittest.cc",
|
|
"ipaddress_unittest.cc",
|
|
"memory_usage_unittest.cc",
|
|
"messagedigest_unittest.cc",
|
|
"messagequeue_unittest.cc",
|
|
"nat_unittest.cc",
|
|
"network_unittest.cc",
|
|
"optionsfile_unittest.cc",
|
|
"proxy_unittest.cc",
|
|
"ptr_util_unittest.cc",
|
|
"ratelimiter_unittest.cc",
|
|
"rollingaccumulator_unittest.cc",
|
|
"rtccertificate_unittest.cc",
|
|
"rtccertificategenerator_unittest.cc",
|
|
"sha1digest_unittest.cc",
|
|
"sharedexclusivelock_unittest.cc",
|
|
"signalthread_unittest.cc",
|
|
"sigslot_unittest.cc",
|
|
"sigslottester_unittest.cc",
|
|
"stream_unittest.cc",
|
|
"testclient_unittest.cc",
|
|
"thread_unittest.cc",
|
|
]
|
|
if (is_win) {
|
|
sources += [
|
|
"win32_unittest.cc",
|
|
"win32window_unittest.cc",
|
|
]
|
|
}
|
|
if (is_mac) {
|
|
sources += [ "macutils_unittest.cc" ]
|
|
}
|
|
if (is_posix) {
|
|
sources += [
|
|
"ssladapter_unittest.cc",
|
|
"sslidentity_unittest.cc",
|
|
"sslstreamadapter_unittest.cc",
|
|
]
|
|
}
|
|
deps = [
|
|
":rtc_base_tests_main",
|
|
]
|
|
public_deps = [
|
|
":rtc_base",
|
|
]
|
|
configs += [ ":rtc_base_unittests_config" ]
|
|
if (!build_with_chromium && is_clang) {
|
|
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
|
|
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
|
|
}
|
|
}
|
|
}
|
|
|
|
if (is_android) {
|
|
android_library("base_java") {
|
|
java_files = [
|
|
"java/src/org/webrtc/Logging.java",
|
|
"java/src/org/webrtc/Size.java",
|
|
"java/src/org/webrtc/ThreadUtils.java",
|
|
]
|
|
}
|
|
}
|