|  | # 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_source_set("mutex") { | 
|  | sources = [ | 
|  | "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:no_unique_address", | 
|  | "//third_party/abseil-cpp/absl/base:core_headers", | 
|  | ] | 
|  | if (rtc_use_absl_mutex) { | 
|  | deps += [ "//third_party/abseil-cpp/absl/synchronization" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | rtc_library("sequence_checker_internal") { | 
|  | visibility = [ | 
|  | "../../api:rtc_api_unittests", | 
|  | "../../api:sequence_checker", | 
|  | ] | 
|  | sources = [ | 
|  | "sequence_checker_internal.cc", | 
|  | "sequence_checker_internal.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":mutex", | 
|  | "..:checks", | 
|  | "..:macromagic", | 
|  | "..:platform_thread_types", | 
|  | "..:stringutils", | 
|  | "../../api/task_queue", | 
|  | "../system:rtc_export", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("yield_policy") { | 
|  | sources = [ | 
|  | "yield_policy.cc", | 
|  | "yield_policy.h", | 
|  | ] | 
|  | deps = [ | 
|  | "..:checks", | 
|  | "//third_party/abseil-cpp/absl/base:config", | 
|  | "//third_party/abseil-cpp/absl/base:core_headers", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (rtc_include_tests && rtc_enable_google_benchmarks) { | 
|  | rtc_library("synchronization_unittests") { | 
|  | testonly = true | 
|  | sources = [ | 
|  | "mutex_unittest.cc", | 
|  | "yield_policy_unittest.cc", | 
|  | ] | 
|  | deps = [ | 
|  | ":mutex", | 
|  | ":yield", | 
|  | ":yield_policy", | 
|  | "..:checks", | 
|  | "..:macromagic", | 
|  | "..:platform_thread", | 
|  | "..:rtc_event", | 
|  | "..:threading", | 
|  | "../../api/units:time_delta", | 
|  | "../../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", | 
|  | ] | 
|  | } | 
|  | } |