summaryrefslogtreecommitdiff
path: root/webrtc/rtc_base/synchronization/BUILD.gn
diff options
context:
space:
mode:
Diffstat (limited to 'webrtc/rtc_base/synchronization/BUILD.gn')
-rw-r--r--webrtc/rtc_base/synchronization/BUILD.gn138
1 files changed, 138 insertions, 0 deletions
diff --git a/webrtc/rtc_base/synchronization/BUILD.gn b/webrtc/rtc_base/synchronization/BUILD.gn
new file mode 100644
index 0000000..a79a048
--- /dev/null
+++ b/webrtc/rtc_base/synchronization/BUILD.gn
@@ -0,0 +1,138 @@
+# Copyright (c) 2018 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("../../webrtc.gni")
+if (is_android) {
+ import("//build/config/android/config.gni")
+ import("//build/config/android/rules.gni")
+}
+
+rtc_library("yield") {
+ sources = [
+ "yield.cc",
+ "yield.h",
+ ]
+ deps = []
+}
+
+rtc_library("mutex") {
+ sources = [
+ "mutex.cc",
+ "mutex.h",
+ "mutex_critical_section.h",
+ "mutex_pthread.h",
+ ]
+ if (rtc_use_absl_mutex) {
+ sources += [ "mutex_abseil.h" ]
+ }
+
+ deps = [
+ ":yield",
+ "..:checks",
+ "..:macromagic",
+ "..:platform_thread_types",
+ "../system:unused",
+ ]
+ absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ]
+ if (rtc_use_absl_mutex) {
+ absl_deps += [ "//third_party/abseil-cpp/absl/synchronization" ]
+ }
+}
+
+rtc_library("rw_lock_wrapper") {
+ public = [ "rw_lock_wrapper.h" ]
+ sources = [ "rw_lock_wrapper.cc" ]
+ deps = [ "..:macromagic" ]
+ if (is_win) {
+ sources += [
+ "rw_lock_win.cc",
+ "rw_lock_win.h",
+ ]
+ deps += [ "..:logging" ]
+ } else {
+ sources += [
+ "rw_lock_posix.cc",
+ "rw_lock_posix.h",
+ ]
+ }
+}
+
+rtc_library("sequence_checker") {
+ sources = [
+ "sequence_checker.cc",
+ "sequence_checker.h",
+ ]
+ deps = [
+ ":mutex",
+ "..:checks",
+ "..:criticalsection",
+ "..:macromagic",
+ "..:platform_thread_types",
+ "..:stringutils",
+ "../../api/task_queue",
+ "../system:rtc_export",
+ ]
+}
+
+rtc_library("yield_policy") {
+ sources = [
+ "yield_policy.cc",
+ "yield_policy.h",
+ ]
+ deps = [ "..:checks" ]
+ absl_deps = [
+ "//third_party/abseil-cpp/absl/base:config",
+ "//third_party/abseil-cpp/absl/base:core_headers",
+ ]
+}
+
+if (rtc_include_tests) {
+ rtc_library("synchronization_unittests") {
+ testonly = true
+ sources = [
+ "mutex_unittest.cc",
+ "yield_policy_unittest.cc",
+ ]
+ deps = [
+ ":mutex",
+ ":yield",
+ ":yield_policy",
+ "..:checks",
+ "..:macromagic",
+ "..:rtc_base",
+ "..:rtc_event",
+ "../../test:test_support",
+ "//third_party/google_benchmark",
+ ]
+ }
+
+ rtc_library("mutex_benchmark") {
+ testonly = true
+ sources = [ "mutex_benchmark.cc" ]
+ deps = [
+ ":mutex",
+ "../system:unused",
+ "//third_party/google_benchmark",
+ ]
+ }
+
+ rtc_library("sequence_checker_unittests") {
+ testonly = true
+
+ sources = [ "sequence_checker_unittest.cc" ]
+ deps = [
+ ":sequence_checker",
+ "..:checks",
+ "..:rtc_base_approved",
+ "..:task_queue_for_test",
+ "../../api:function_view",
+ "../../test:test_main",
+ "../../test:test_support",
+ ]
+ }
+}