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