xref: /aosp_15_r20/external/webrtc/system_wrappers/BUILD.gn (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1*d9f75844SAndroid Build Coastguard Worker# Copyright (c) 2014 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 Workerif (is_android) {
10*d9f75844SAndroid Build Coastguard Worker  import("//build/config/android/config.gni")
11*d9f75844SAndroid Build Coastguard Worker  import("//build/config/android/rules.gni")
12*d9f75844SAndroid Build Coastguard Worker}
13*d9f75844SAndroid Build Coastguard Workerimport("../webrtc.gni")
14*d9f75844SAndroid Build Coastguard Worker
15*d9f75844SAndroid Build Coastguard Workerrtc_library("system_wrappers") {
16*d9f75844SAndroid Build Coastguard Worker  visibility = [ "*" ]
17*d9f75844SAndroid Build Coastguard Worker  sources = [
18*d9f75844SAndroid Build Coastguard Worker    "include/clock.h",
19*d9f75844SAndroid Build Coastguard Worker    "include/cpu_features_wrapper.h",
20*d9f75844SAndroid Build Coastguard Worker    "include/cpu_info.h",
21*d9f75844SAndroid Build Coastguard Worker    "include/ntp_time.h",
22*d9f75844SAndroid Build Coastguard Worker    "include/rtp_to_ntp_estimator.h",
23*d9f75844SAndroid Build Coastguard Worker    "include/sleep.h",
24*d9f75844SAndroid Build Coastguard Worker    "source/clock.cc",
25*d9f75844SAndroid Build Coastguard Worker    "source/cpu_features.cc",
26*d9f75844SAndroid Build Coastguard Worker    "source/cpu_info.cc",
27*d9f75844SAndroid Build Coastguard Worker    "source/rtp_to_ntp_estimator.cc",
28*d9f75844SAndroid Build Coastguard Worker    "source/sleep.cc",
29*d9f75844SAndroid Build Coastguard Worker  ]
30*d9f75844SAndroid Build Coastguard Worker
31*d9f75844SAndroid Build Coastguard Worker  defines = []
32*d9f75844SAndroid Build Coastguard Worker  libs = []
33*d9f75844SAndroid Build Coastguard Worker  deps = [
34*d9f75844SAndroid Build Coastguard Worker    ":field_trial",
35*d9f75844SAndroid Build Coastguard Worker    "../api:array_view",
36*d9f75844SAndroid Build Coastguard Worker    "../api/units:timestamp",
37*d9f75844SAndroid Build Coastguard Worker    "../modules:module_api_public",
38*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:checks",
39*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:logging",
40*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:safe_conversions",
41*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:timeutils",
42*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/synchronization:mutex",
43*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/system:arch",
44*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/system:rtc_export",
45*d9f75844SAndroid Build Coastguard Worker  ]
46*d9f75844SAndroid Build Coastguard Worker  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
47*d9f75844SAndroid Build Coastguard Worker
48*d9f75844SAndroid Build Coastguard Worker  if (is_android) {
49*d9f75844SAndroid Build Coastguard Worker    if (build_with_mozilla) {
50*d9f75844SAndroid Build Coastguard Worker      include_dirs = [
51*d9f75844SAndroid Build Coastguard Worker        "/config/external/nspr",
52*d9f75844SAndroid Build Coastguard Worker        "/nsprpub/lib/ds",
53*d9f75844SAndroid Build Coastguard Worker        "/nsprpub/pr/include",
54*d9f75844SAndroid Build Coastguard Worker      ]
55*d9f75844SAndroid Build Coastguard Worker    } else {
56*d9f75844SAndroid Build Coastguard Worker      sources += [ "source/cpu_features_android.cc" ]
57*d9f75844SAndroid Build Coastguard Worker      deps += [ "//third_party/android_sdk:cpu_features" ]
58*d9f75844SAndroid Build Coastguard Worker    }
59*d9f75844SAndroid Build Coastguard Worker
60*d9f75844SAndroid Build Coastguard Worker    libs += [ "log" ]
61*d9f75844SAndroid Build Coastguard Worker  }
62*d9f75844SAndroid Build Coastguard Worker
63*d9f75844SAndroid Build Coastguard Worker  if (is_linux || is_chromeos) {
64*d9f75844SAndroid Build Coastguard Worker    if (!build_with_chromium) {
65*d9f75844SAndroid Build Coastguard Worker      sources += [ "source/cpu_features_linux.cc" ]
66*d9f75844SAndroid Build Coastguard Worker    }
67*d9f75844SAndroid Build Coastguard Worker
68*d9f75844SAndroid Build Coastguard Worker    libs += [ "rt" ]
69*d9f75844SAndroid Build Coastguard Worker  }
70*d9f75844SAndroid Build Coastguard Worker
71*d9f75844SAndroid Build Coastguard Worker  if (is_win) {
72*d9f75844SAndroid Build Coastguard Worker    libs += [ "winmm.lib" ]
73*d9f75844SAndroid Build Coastguard Worker
74*d9f75844SAndroid Build Coastguard Worker    # Windows needs ../rtc_base due to include of
75*d9f75844SAndroid Build Coastguard Worker    # webrtc/rtc_base/win32.h in source/clock.cc.
76*d9f75844SAndroid Build Coastguard Worker    deps += [ "../rtc_base:win32" ]
77*d9f75844SAndroid Build Coastguard Worker  }
78*d9f75844SAndroid Build Coastguard Worker
79*d9f75844SAndroid Build Coastguard Worker  deps += [ "../rtc_base:rtc_numerics" ]
80*d9f75844SAndroid Build Coastguard Worker}
81*d9f75844SAndroid Build Coastguard Worker
82*d9f75844SAndroid Build Coastguard Workerrtc_library("field_trial") {
83*d9f75844SAndroid Build Coastguard Worker  visibility = [ "*" ]
84*d9f75844SAndroid Build Coastguard Worker  public = [ "include/field_trial.h" ]
85*d9f75844SAndroid Build Coastguard Worker  sources = [ "source/field_trial.cc" ]
86*d9f75844SAndroid Build Coastguard Worker  if (rtc_exclude_field_trial_default) {
87*d9f75844SAndroid Build Coastguard Worker    defines = [ "WEBRTC_EXCLUDE_FIELD_TRIAL_DEFAULT" ]
88*d9f75844SAndroid Build Coastguard Worker  }
89*d9f75844SAndroid Build Coastguard Worker  deps = [
90*d9f75844SAndroid Build Coastguard Worker    "../experiments:registered_field_trials",
91*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:checks",
92*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:logging",
93*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:stringutils",
94*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/containers:flat_set",
95*d9f75844SAndroid Build Coastguard Worker  ]
96*d9f75844SAndroid Build Coastguard Worker  absl_deps = [
97*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/algorithm:container",
98*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/strings",
99*d9f75844SAndroid Build Coastguard Worker  ]
100*d9f75844SAndroid Build Coastguard Worker}
101*d9f75844SAndroid Build Coastguard Worker
102*d9f75844SAndroid Build Coastguard Workerrtc_library("metrics") {
103*d9f75844SAndroid Build Coastguard Worker  visibility = [ "*" ]
104*d9f75844SAndroid Build Coastguard Worker  public = [ "include/metrics.h" ]
105*d9f75844SAndroid Build Coastguard Worker  sources = [ "source/metrics.cc" ]
106*d9f75844SAndroid Build Coastguard Worker  if (rtc_exclude_metrics_default) {
107*d9f75844SAndroid Build Coastguard Worker    defines = [ "WEBRTC_EXCLUDE_METRICS_DEFAULT" ]
108*d9f75844SAndroid Build Coastguard Worker  }
109*d9f75844SAndroid Build Coastguard Worker  deps = [
110*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:checks",
111*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:macromagic",
112*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:stringutils",
113*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/synchronization:mutex",
114*d9f75844SAndroid Build Coastguard Worker  ]
115*d9f75844SAndroid Build Coastguard Worker  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
116*d9f75844SAndroid Build Coastguard Worker}
117*d9f75844SAndroid Build Coastguard Worker
118*d9f75844SAndroid Build Coastguard Workerrtc_library("denormal_disabler") {
119*d9f75844SAndroid Build Coastguard Worker  visibility = [ "*" ]
120*d9f75844SAndroid Build Coastguard Worker  public = [ "include/denormal_disabler.h" ]
121*d9f75844SAndroid Build Coastguard Worker  sources = [ "source/denormal_disabler.cc" ]
122*d9f75844SAndroid Build Coastguard Worker  deps = [
123*d9f75844SAndroid Build Coastguard Worker    "../rtc_base:checks",
124*d9f75844SAndroid Build Coastguard Worker    "../rtc_base/system:arch",
125*d9f75844SAndroid Build Coastguard Worker  ]
126*d9f75844SAndroid Build Coastguard Worker  if (is_clang) {
127*d9f75844SAndroid Build Coastguard Worker    cflags_cc = [ "-Wno-unused-private-field" ]
128*d9f75844SAndroid Build Coastguard Worker  }
129*d9f75844SAndroid Build Coastguard Worker}
130*d9f75844SAndroid Build Coastguard Worker
131*d9f75844SAndroid Build Coastguard Workerif (rtc_include_tests && !build_with_chromium) {
132*d9f75844SAndroid Build Coastguard Worker  rtc_test("system_wrappers_unittests") {
133*d9f75844SAndroid Build Coastguard Worker    testonly = true
134*d9f75844SAndroid Build Coastguard Worker    sources = [
135*d9f75844SAndroid Build Coastguard Worker      "source/clock_unittest.cc",
136*d9f75844SAndroid Build Coastguard Worker      "source/denormal_disabler_unittest.cc",
137*d9f75844SAndroid Build Coastguard Worker      "source/field_trial_unittest.cc",
138*d9f75844SAndroid Build Coastguard Worker      "source/metrics_default_unittest.cc",
139*d9f75844SAndroid Build Coastguard Worker      "source/metrics_unittest.cc",
140*d9f75844SAndroid Build Coastguard Worker      "source/ntp_time_unittest.cc",
141*d9f75844SAndroid Build Coastguard Worker      "source/rtp_to_ntp_estimator_unittest.cc",
142*d9f75844SAndroid Build Coastguard Worker    ]
143*d9f75844SAndroid Build Coastguard Worker
144*d9f75844SAndroid Build Coastguard Worker    deps = [
145*d9f75844SAndroid Build Coastguard Worker      ":denormal_disabler",
146*d9f75844SAndroid Build Coastguard Worker      ":field_trial",
147*d9f75844SAndroid Build Coastguard Worker      ":metrics",
148*d9f75844SAndroid Build Coastguard Worker      ":system_wrappers",
149*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:checks",
150*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:random",
151*d9f75844SAndroid Build Coastguard Worker      "../rtc_base:stringutils",
152*d9f75844SAndroid Build Coastguard Worker      "../test:rtc_expect_death",
153*d9f75844SAndroid Build Coastguard Worker      "../test:test_main",
154*d9f75844SAndroid Build Coastguard Worker      "../test:test_support",
155*d9f75844SAndroid Build Coastguard Worker      "//testing/gtest",
156*d9f75844SAndroid Build Coastguard Worker    ]
157*d9f75844SAndroid Build Coastguard Worker
158*d9f75844SAndroid Build Coastguard Worker    absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
159*d9f75844SAndroid Build Coastguard Worker
160*d9f75844SAndroid Build Coastguard Worker    if (is_android) {
161*d9f75844SAndroid Build Coastguard Worker      deps += [ "//testing/android/native_test:native_test_support" ]
162*d9f75844SAndroid Build Coastguard Worker
163*d9f75844SAndroid Build Coastguard Worker      shard_timeout = 900
164*d9f75844SAndroid Build Coastguard Worker    }
165*d9f75844SAndroid Build Coastguard Worker  }
166*d9f75844SAndroid Build Coastguard Worker}
167