xref: /aosp_15_r20/external/webrtc/rtc_base/synchronization/BUILD.gn (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1*d9f75844SAndroid Build Coastguard Worker# Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
2*d9f75844SAndroid Build Coastguard Worker#
3*d9f75844SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license
4*d9f75844SAndroid Build Coastguard Worker# that can be found in the LICENSE file in the root of the source
5*d9f75844SAndroid Build Coastguard Worker# tree. An additional intellectual property rights grant can be found
6*d9f75844SAndroid Build Coastguard Worker# in the file PATENTS.  All contributing project authors may
7*d9f75844SAndroid Build Coastguard Worker# be found in the AUTHORS file in the root of the source tree.
8*d9f75844SAndroid Build Coastguard Worker
9*d9f75844SAndroid Build Coastguard Workerimport("//third_party/google_benchmark/buildconfig.gni")
10*d9f75844SAndroid Build Coastguard Workerimport("../../webrtc.gni")
11*d9f75844SAndroid Build Coastguard Workerif (is_android) {
12*d9f75844SAndroid Build Coastguard Worker  import("//build/config/android/config.gni")
13*d9f75844SAndroid Build Coastguard Worker  import("//build/config/android/rules.gni")
14*d9f75844SAndroid Build Coastguard Worker}
15*d9f75844SAndroid Build Coastguard Worker
16*d9f75844SAndroid Build Coastguard Workerrtc_library("yield") {
17*d9f75844SAndroid Build Coastguard Worker  sources = [
18*d9f75844SAndroid Build Coastguard Worker    "yield.cc",
19*d9f75844SAndroid Build Coastguard Worker    "yield.h",
20*d9f75844SAndroid Build Coastguard Worker  ]
21*d9f75844SAndroid Build Coastguard Worker  deps = []
22*d9f75844SAndroid Build Coastguard Worker}
23*d9f75844SAndroid Build Coastguard Worker
24*d9f75844SAndroid Build Coastguard Workerrtc_source_set("mutex") {
25*d9f75844SAndroid Build Coastguard Worker  sources = [
26*d9f75844SAndroid Build Coastguard Worker    "mutex.h",
27*d9f75844SAndroid Build Coastguard Worker    "mutex_critical_section.h",
28*d9f75844SAndroid Build Coastguard Worker    "mutex_pthread.h",
29*d9f75844SAndroid Build Coastguard Worker  ]
30*d9f75844SAndroid Build Coastguard Worker  if (rtc_use_absl_mutex) {
31*d9f75844SAndroid Build Coastguard Worker    sources += [ "mutex_abseil.h" ]
32*d9f75844SAndroid Build Coastguard Worker  }
33*d9f75844SAndroid Build Coastguard Worker
34*d9f75844SAndroid Build Coastguard Worker  deps = [
35*d9f75844SAndroid Build Coastguard Worker    ":yield",
36*d9f75844SAndroid Build Coastguard Worker    "..:checks",
37*d9f75844SAndroid Build Coastguard Worker    "..:macromagic",
38*d9f75844SAndroid Build Coastguard Worker    "..:platform_thread_types",
39*d9f75844SAndroid Build Coastguard Worker    "../system:no_unique_address",
40*d9f75844SAndroid Build Coastguard Worker  ]
41*d9f75844SAndroid Build Coastguard Worker  absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ]
42*d9f75844SAndroid Build Coastguard Worker  if (rtc_use_absl_mutex) {
43*d9f75844SAndroid Build Coastguard Worker    absl_deps += [ "//third_party/abseil-cpp/absl/synchronization" ]
44*d9f75844SAndroid Build Coastguard Worker  }
45*d9f75844SAndroid Build Coastguard Worker}
46*d9f75844SAndroid Build Coastguard Worker
47*d9f75844SAndroid Build Coastguard Workerrtc_library("sequence_checker_internal") {
48*d9f75844SAndroid Build Coastguard Worker  visibility = [ "../../api:sequence_checker" ]
49*d9f75844SAndroid Build Coastguard Worker  sources = [
50*d9f75844SAndroid Build Coastguard Worker    "sequence_checker_internal.cc",
51*d9f75844SAndroid Build Coastguard Worker    "sequence_checker_internal.h",
52*d9f75844SAndroid Build Coastguard Worker  ]
53*d9f75844SAndroid Build Coastguard Worker  deps = [
54*d9f75844SAndroid Build Coastguard Worker    ":mutex",
55*d9f75844SAndroid Build Coastguard Worker    "..:checks",
56*d9f75844SAndroid Build Coastguard Worker    "..:macromagic",
57*d9f75844SAndroid Build Coastguard Worker    "..:platform_thread_types",
58*d9f75844SAndroid Build Coastguard Worker    "..:stringutils",
59*d9f75844SAndroid Build Coastguard Worker    "../../api/task_queue",
60*d9f75844SAndroid Build Coastguard Worker    "../system:rtc_export",
61*d9f75844SAndroid Build Coastguard Worker  ]
62*d9f75844SAndroid Build Coastguard Worker}
63*d9f75844SAndroid Build Coastguard Worker
64*d9f75844SAndroid Build Coastguard Workerrtc_library("yield_policy") {
65*d9f75844SAndroid Build Coastguard Worker  sources = [
66*d9f75844SAndroid Build Coastguard Worker    "yield_policy.cc",
67*d9f75844SAndroid Build Coastguard Worker    "yield_policy.h",
68*d9f75844SAndroid Build Coastguard Worker  ]
69*d9f75844SAndroid Build Coastguard Worker  deps = [ "..:checks" ]
70*d9f75844SAndroid Build Coastguard Worker  absl_deps = [
71*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/base:config",
72*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/base:core_headers",
73*d9f75844SAndroid Build Coastguard Worker  ]
74*d9f75844SAndroid Build Coastguard Worker}
75*d9f75844SAndroid Build Coastguard Worker
76*d9f75844SAndroid Build Coastguard Workerif (rtc_include_tests) {
77*d9f75844SAndroid Build Coastguard Worker  if (enable_google_benchmarks) {
78*d9f75844SAndroid Build Coastguard Worker    rtc_library("synchronization_unittests") {
79*d9f75844SAndroid Build Coastguard Worker      testonly = true
80*d9f75844SAndroid Build Coastguard Worker      sources = [
81*d9f75844SAndroid Build Coastguard Worker        "mutex_unittest.cc",
82*d9f75844SAndroid Build Coastguard Worker        "yield_policy_unittest.cc",
83*d9f75844SAndroid Build Coastguard Worker      ]
84*d9f75844SAndroid Build Coastguard Worker      deps = [
85*d9f75844SAndroid Build Coastguard Worker        ":mutex",
86*d9f75844SAndroid Build Coastguard Worker        ":yield",
87*d9f75844SAndroid Build Coastguard Worker        ":yield_policy",
88*d9f75844SAndroid Build Coastguard Worker        "..:checks",
89*d9f75844SAndroid Build Coastguard Worker        "..:macromagic",
90*d9f75844SAndroid Build Coastguard Worker        "..:platform_thread",
91*d9f75844SAndroid Build Coastguard Worker        "..:rtc_base",
92*d9f75844SAndroid Build Coastguard Worker        "..:rtc_event",
93*d9f75844SAndroid Build Coastguard Worker        "..:threading",
94*d9f75844SAndroid Build Coastguard Worker        "../../test:test_support",
95*d9f75844SAndroid Build Coastguard Worker        "//third_party/google_benchmark",
96*d9f75844SAndroid Build Coastguard Worker      ]
97*d9f75844SAndroid Build Coastguard Worker    }
98*d9f75844SAndroid Build Coastguard Worker
99*d9f75844SAndroid Build Coastguard Worker    rtc_library("mutex_benchmark") {
100*d9f75844SAndroid Build Coastguard Worker      testonly = true
101*d9f75844SAndroid Build Coastguard Worker      sources = [ "mutex_benchmark.cc" ]
102*d9f75844SAndroid Build Coastguard Worker      deps = [
103*d9f75844SAndroid Build Coastguard Worker        ":mutex",
104*d9f75844SAndroid Build Coastguard Worker        "../system:unused",
105*d9f75844SAndroid Build Coastguard Worker        "//third_party/google_benchmark",
106*d9f75844SAndroid Build Coastguard Worker      ]
107*d9f75844SAndroid Build Coastguard Worker    }
108*d9f75844SAndroid Build Coastguard Worker  }
109*d9f75844SAndroid Build Coastguard Worker}
110