File: build.gni

package info (click to toggle)
firefox-esr 140.5.0esr-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,538,920 kB
  • sloc: cpp: 7,381,527; javascript: 6,388,905; ansic: 3,710,087; python: 1,393,776; xml: 628,165; asm: 426,916; java: 184,004; sh: 65,744; makefile: 19,302; objc: 13,059; perl: 12,912; yacc: 4,583; cs: 3,846; pascal: 3,352; lex: 1,720; ruby: 1,226; exp: 762; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10
file content (77 lines) | stat: -rw-r--r-- 3,186 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS.  All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.

# Some non-Chromium builds don't support building java targets.
enable_java_templates = true

# Enables assertions on safety checks in libc++.
enable_safe_libcxx = true

# Don't set this variable to true when building standalone WebRTC, it is
# only needed to support both WebRTC standalone and Chromium builds.
build_with_chromium = false

use_cxx17 = !is_android

# Use our own suppressions files.
asan_suppressions_file = "//build/sanitizers/asan_suppressions.cc"
lsan_suppressions_file = "//tools_webrtc/sanitizers/lsan_suppressions_webrtc.cc"
tsan_suppressions_file = "//tools_webrtc/sanitizers/tsan_suppressions_webrtc.cc"
msan_ignorelist_path =
    rebase_path("//tools_webrtc/msan/suppressions.txt", root_build_dir)
ubsan_ignorelist_path =
    rebase_path("//tools_webrtc/ubsan/suppressions.txt", root_build_dir)
ubsan_vptr_ignorelist_path =
    rebase_path("//tools_webrtc/ubsan/vptr_suppressions.txt", root_build_dir)

# For Chromium, Android 32-bit non-component, non-clang builds hit a 4GiB size
# limit, making them requiring symbol_level=2. WebRTC doesn't hit that problem
# so we just ignore that assert. See https://crbug.com/648948 for more info.
ignore_elf32_limitations = true

perfetto_build_with_embedder = true
enable_perfetto_trace_processor = true

# Use bundled hermetic Xcode installation maintainted by Chromium,
# except for local iOS builds where it's unsupported.
# Allow for mac cross compile on linux machines.
if (host_os == "mac" || host_os == "linux") {
  _result = exec_script("//chromium/build/mac/should_use_hermetic_xcode.py",
                        [ target_os ],
                        "value")
  assert(_result != 2,
         "Do not allow building targets with the default " +
             "hermetic toolchain if the minimum OS version is not met.")
  use_system_xcode = _result == 0
}

use_system_xcode = false
xcode_version = "10.15"
mac_xcode_version = "default"

declare_args() {
  # WebRTC doesn't depend on //base from production code but only for testing
  # purposes. In any case, it doesn't depend on //third_party/perfetto which
  # is used for base tracing, so this feature is disabled.
  enable_base_tracing = false

  # TODO(b/336718643): Remove use_perfetto_client_library_flag.
  use_perfetto_client_library = false
  use_perfetto_trace_processor = false

  # Limits the defined //third_party/android_deps targets to only "buildCompile"
  # and "buildCompileNoDeps" targets. This is useful for third-party
  # repositories which do not use JUnit tests. For instance,
  # limit_android_deps == true removes "gn gen" requirement for
  # //third_party/robolectric .
  limit_android_deps = false

  # If true, it assumes that //third_party/abseil-cpp is an available
  # dependency for googletest.
  gtest_enable_absl_printers = true
}