xref: /aosp_15_r20/external/webrtc/build_overrides/build.gni (revision d9f758449e529ab9291ac668be2861e7a55c2422)
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