1*d9f75844SAndroid Build Coastguard Worker# Copyright (c) 2016 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 Worker# Some non-Chromium builds don't support building java targets. 10*d9f75844SAndroid Build Coastguard Workerenable_java_templates = true 11*d9f75844SAndroid Build Coastguard Worker 12*d9f75844SAndroid Build Coastguard Worker# Don't set this variable to true when building stadalone WebRTC, it is 13*d9f75844SAndroid Build Coastguard Worker# only needed to support both WebRTC standalone and Chromium builds. 14*d9f75844SAndroid Build Coastguard Workerbuild_with_chromium = false 15*d9f75844SAndroid Build Coastguard Worker 16*d9f75844SAndroid Build Coastguard Worker# WebRTC checks out google_benchmark by default since it is always used. 17*d9f75844SAndroid Build Coastguard Workercheckout_google_benchmark = true 18*d9f75844SAndroid Build Coastguard Worker 19*d9f75844SAndroid Build Coastguard Worker# Use our own suppressions files. 20*d9f75844SAndroid Build Coastguard Workerasan_suppressions_file = "//build/sanitizers/asan_suppressions.cc" 21*d9f75844SAndroid Build Coastguard Workerlsan_suppressions_file = "//tools_webrtc/sanitizers/lsan_suppressions_webrtc.cc" 22*d9f75844SAndroid Build Coastguard Workertsan_suppressions_file = "//tools_webrtc/sanitizers/tsan_suppressions_webrtc.cc" 23*d9f75844SAndroid Build Coastguard Workermsan_ignorelist_path = 24*d9f75844SAndroid Build Coastguard Worker rebase_path("//tools_webrtc/msan/suppressions.txt", root_build_dir) 25*d9f75844SAndroid Build Coastguard Workerubsan_ignorelist_path = 26*d9f75844SAndroid Build Coastguard Worker rebase_path("//tools_webrtc/ubsan/suppressions.txt", root_build_dir) 27*d9f75844SAndroid Build Coastguard Workerubsan_vptr_ignorelist_path = 28*d9f75844SAndroid Build Coastguard Worker rebase_path("//tools_webrtc/ubsan/vptr_suppressions.txt", root_build_dir) 29*d9f75844SAndroid Build Coastguard Worker 30*d9f75844SAndroid Build Coastguard Worker# For Chromium, Android 32-bit non-component, non-clang builds hit a 4GiB size 31*d9f75844SAndroid Build Coastguard Worker# limit, making them requiring symbol_level=2. WebRTC doesn't hit that problem 32*d9f75844SAndroid Build Coastguard Worker# so we just ignore that assert. See https://crbug.com/648948 for more info. 33*d9f75844SAndroid Build Coastguard Workerignore_elf32_limitations = true 34*d9f75844SAndroid Build Coastguard Worker 35*d9f75844SAndroid Build Coastguard Worker# Use bundled hermetic Xcode installation maintainted by Chromium, 36*d9f75844SAndroid Build Coastguard Worker# except for local iOS builds where it's unsupported. 37*d9f75844SAndroid Build Coastguard Worker# Allow for mac cross compile on linux machines. 38*d9f75844SAndroid Build Coastguard Workerif (host_os == "mac" || host_os == "linux") { 39*d9f75844SAndroid Build Coastguard Worker _result = exec_script("//build/mac/should_use_hermetic_xcode.py", 40*d9f75844SAndroid Build Coastguard Worker [ target_os ], 41*d9f75844SAndroid Build Coastguard Worker "value") 42*d9f75844SAndroid Build Coastguard Worker assert(_result != 2, 43*d9f75844SAndroid Build Coastguard Worker "Do not allow building targets with the default " + 44*d9f75844SAndroid Build Coastguard Worker "hermetic toolchain if the minimum OS version is not met.") 45*d9f75844SAndroid Build Coastguard Worker use_system_xcode = _result == 0 46*d9f75844SAndroid Build Coastguard Worker} 47*d9f75844SAndroid Build Coastguard Worker 48*d9f75844SAndroid Build Coastguard Workerdeclare_args() { 49*d9f75844SAndroid Build Coastguard Worker # WebRTC doesn't depend on //base from production code but only for testing 50*d9f75844SAndroid Build Coastguard Worker # purposes. In any case, it doesn't depend on //third_party/perfetto which 51*d9f75844SAndroid Build Coastguard Worker # is used for base tracing, so this feature is disabled. 52*d9f75844SAndroid Build Coastguard Worker enable_base_tracing = false 53*d9f75844SAndroid Build Coastguard Worker use_perfetto_client_library = false 54*d9f75844SAndroid Build Coastguard Worker 55*d9f75844SAndroid Build Coastguard Worker # Limits the defined //third_party/android_deps targets to only "buildCompile" 56*d9f75844SAndroid Build Coastguard Worker # and "buildCompileNoDeps" targets. This is useful for third-party 57*d9f75844SAndroid Build Coastguard Worker # repositories which do not use JUnit tests. For instance, 58*d9f75844SAndroid Build Coastguard Worker # limit_android_deps == true removes "gn gen" requirement for 59*d9f75844SAndroid Build Coastguard Worker # //third_party/robolectric . 60*d9f75844SAndroid Build Coastguard Worker limit_android_deps = false 61*d9f75844SAndroid Build Coastguard Worker 62*d9f75844SAndroid Build Coastguard Worker # If true, it assumes that //third_party/abseil-cpp is an available 63*d9f75844SAndroid Build Coastguard Worker # dependency for googletest. 64*d9f75844SAndroid Build Coastguard Worker gtest_enable_absl_printers = true 65*d9f75844SAndroid Build Coastguard Worker} 66