# 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("//third_party/google_benchmark/buildconfig.gni") 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", ] 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("sequence_checker_internal") { visibility = [ "../../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" ] absl_deps = [ "//third_party/abseil-cpp/absl/base:config", "//third_party/abseil-cpp/absl/base:core_headers", ] } if (rtc_include_tests) { if (enable_google_benchmarks) { rtc_library("synchronization_unittests") { testonly = true sources = [ "mutex_unittest.cc", "yield_policy_unittest.cc", ] deps = [ ":mutex", ":yield", ":yield_policy", "..:checks", "..:location", "..:macromagic", "..:platform_thread", "..:rtc_base", "..:rtc_event", "..:threading", "../../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", ] } } }