Webrtc-android编译参数

action_pool_depth

    Current value (from the default) = -1

      From //build/toolchain/BUILD.gn:11

    Pool for non goma tasks.

added_rust_stdlib_libs

    Current value (from the default) = []

      From //build/config/rust.gni:56

    Any extra std rlibs in your Rust toolchain, relative to the standard

    Rust toolchain. Typically used with 'rust_sysroot_absolute'

allow_jni_multiplexing

    Current value (from the default) = false

      From //build/config/android/jni.gni:11

 启用JNI多路复用,以减少JNI本地方法的开销。

also_build_ash_chrome

    Current value (from the default) = false

      From //build/config/chromeos/ui_mode.gni:26

    Setting this to true when building linux Lacros-chrome will cause it to

    *also* build linux ash-chrome in a subdirectory using an alternate

    toolchain.

    Don't set this unless you're sure you want it, because it'll double

    your build time.

also_build_lacros_chrome

    Current value (from the default) = false

      From //build/config/chromeos/ui_mode.gni:30

    Setting this to true when building linux ash-chrome will cause it to

    *also* build linux Lacros-chrome in a subdirectory using an alternate toolchain.

also_build_lacros_chrome_for_architecture

    Current value (from the default) = ""

      From //build/config/chromeos/ui_mode.gni:35

    Setting this when building ash-chrome will cause it to

    *also* build Lacros-chrome in a subdirectory using an alternate toolchain.

    You can set this to either "amd64" or "arm".

android32_ndk_api_level

    Current value = 21

      From //.gn:55

    Overridden from the default = 21

      From //build/config/android/config.gni:177

    Android API level for 32 bits platforms

android64_ndk_api_level

    Current value = 21

      From //.gn:56

    Overridden from the default = 21

      From //build/config/android/config.gni:180

    Android API level for 64 bits platforms

android_channel

    Current value (from the default) = "default"

      From //build/config/android/channel.gni:8

    The channel to build on Android: stable, beta, dev, canary, work, or

    default. "default" should be used on non-official builds.

android_default_version_code

    Current value (from the default) = "1"

      From //build/config/android/config.gni:198

    Android versionCode for android_apk()s that don't explicitly set one.

android_default_version_name

    Current value (from the default) = "Developer Build"

      From //build/config/android/config.gni:201

    Android versionName for android_apk()s that don't explicitly set one.

android_full_debug

    Current value (from the default) = false

      From //build/config/compiler/BUILD.gn:60

    Normally, Android builds are lightly optimized, even for debug builds, to

    keep binary size down. Setting this flag to true disables such optimization

android_keystore_name

    Current value (from the default) = "chromiumdebugkey"

      From //build/config/android/config.gni:213

    The name of the keystore to use for signing builds.

android_keystore_password

    Current value (from the default) = "chromium"

      From //build/config/android/config.gni:216

    The password for the keystore to use for signing builds.

android_keystore_path

    Current value (from the default) = "//build/android/chromium-debug.keystore"

      From //build/config/android/config.gni:210

    The path to the keystore to use for signing builds.

android_libcpp_lib_dir

    Current value (from the default) = ""

      From //build/config/android/config.gni:195

    Libc++ library directory. Override to use a custom libc++ binary.

android_ndk_major_version

    Current value (from the default) = 25

      From //build/config/android/config.gni:174

android_ndk_root

    Current value (from the default) = "//third_party/android_toolchain"

      From //build/config/android/config.gni:172

android_ndk_version

    Current value (from the default) = "r25c"

      From //build/config/android/config.gni:173

android_override_version_code

    Current value (from the default) = ""

      From //build/config/android/config.gni:204

    Forced Android versionCode

android_override_version_name

    Current value (from the default) = ""

      From //build/config/android/config.gni:207

    Forced Android versionName

android_sdk_build_tools_version

    Current value (from the default) = "33.0.0"

      From //build/config/android/config.gni:189

android_sdk_platform_version

    Current value (from the default) = "33"

      From //build/config/android/config.gni:277

android_sdk_release

    Current value (from the default) = "t"

      From //build/config/android/config.gni:94

    Which Android SDK to use.

android_sdk_root

    Current value (from the default) = "//third_party/android_sdk/public"

      From //build/config/android/config.gni:187

android_sdk_tools_bundle_aapt2_dir

    Current value (from the default) = "//third_party/android_build_tools/aapt2"

      From //build/config/android/config.gni:234

android_sdk_version

    Current value (from the default) = "33"

      From //build/config/android/config.gni:188

android_static_analysis

    Current value (from the default) = "on"

      From //build/config/android/config.gni:76

android_unstripped_runtime_outputs

    Current value (from the default) = true

      From //build/toolchain/android/BUILD.gn:15

    Whether unstripped binaries, i.e. compiled with debug symbols, should be

    considered runtime_deps rather than stripped ones.

apm_debug_dump

    Current value (from the default) = false

      From //webrtc.gni:125

    Selects whether debug dumps for the audio processing module

    should be generated.

archive_seed_corpus

    Current value (from the default) = true

      From //build/config/sanitizers/sanitizers.gni:109

    When true, seed corpora archives are built.

arm_control_flow_integrity

    Current value (from the default) = "standard"

      From //build/config/arm.gni:143

    Enable PAC and BTI on AArch64 Linux/Android systems.

    target_cpu == "arm64" filters out some cases (e.g. the ChromeOS x64

    MSAN build) where the target platform is x64, but V8 is configured to

    use the arm64 simulator.

auto_profile_path

    Current value (from the default) = ""

      From //build/config/compiler/BUILD.gn:86

    AFDO (Automatic Feedback Directed Optimizer) is a form of profile-guided

    optimization that GCC supports. It used by ChromeOS in their official

    builds. To use it, set auto_profile_path to the path to a file containing

    the needed gcov profiling data.

backup_ref_ptr_poison_oob_ptr

    Current value (from the default) = false

      From //base/allocator/partition_allocator/partition_alloc.gni:195

    Set to `enable_backup_ref_ptr_support && has_64_bit_pointers` when enabling.

branding_file_path

    Current value (from the default) = "//chrome/app/theme/chromium/BRANDING"

      From //build/config/chrome_build.gni:67

    The path to the BRANDING file in chrome/app/theme.

branding_path_component

    Current value (from the default) = "chromium"

      From //build/config/chrome_build.gni:60

branding_path_product

    Current value (from the default) = "chromium"

      From //build/config/chrome_build.gni:61

build_allocation_stack_trace_recorder

    Current value (from the default) = true

      From //base/debug/debug.gni:17

    Whether to compile support for Allocation Stack Trace Recorder.

   

    The recorder is initially intended as a support tool for Arm's

    Memory Tagging Extensions. A history of the most recent allocations and

    frees is included in the crashpad report and gives developers information

    where the memory which was invalidly accessed was allocated or freed.

   

    Although it should work on other platforms as well, for the above reasons,

    we currently enable it only for Android when compiling for Arm64.

build_hwasan_splits

    Current value (from the default) = false

      From //build/config/android/abi.gni:31

    Build additional browser splits with HWASAN instrumentation enabled.

build_libsrtp_tests

    Current value (from the default) = false

      From //third_party/libsrtp/BUILD.gn:10

    Tests may not be appropriate for some build environments, e.g. Windows.

    Rather than enumerate valid options, we just let clients ask for them.

build_with_mozilla

    Current value (from the default) = false

      From //webrtc.gni:152

    Enable to use the Mozilla internal settings.

cc_wrapper

    Current value (from the default) = ""

      From //build/toolchain/cc_wrapper.gni:37

    Set to "ccache", "icecc" or "distcc".  Probably doesn't work on windows.

chrome_orderfile_path

    Current value (from the default) = ""

      From //build/config/compiler/BUILD.gn:215

chrome_pgo_phase

    Current value (from the default) = 0

      From //build/config/compiler/pgo/pgo.gni:22

    Specify the current PGO phase.

    Here's the different values that can be used:

        0 : Means that PGO is turned off.

        1 : Used during the PGI (instrumentation) phase.

        2 : Used during the PGO (optimization) phase.

    PGO profiles are generated from `dcheck_always_on = false` builds. Mixing

    those profiles with `dcheck_always_on = true` builds can cause the compiler

    to think some code is hotter than it actually is, potentially causing very

    bad compile times.

chromeos_afdo_platform

    Current value (from the default) = "atom"

      From //build/config/compiler/BUILD.gn:106

    This configuration is used to select a default profile in Chrome OS based on

    the microarchitectures we are using. This is only used if

    clang_use_default_sample_profile is true and clang_sample_profile_path is

    empty.

chromeos_is_browser_only

    Current value (from the default) = false

      From //build/config/chromeos/ui_mode.gni:19

    Deprecated, use is_chromeos_lacros.

   

    This controls UI configuration for Chrome.

    If this flag is set, we assume Chrome runs on Chrome OS devices, using

    Wayland (instead of X11).

   

    TODO(crbug.com/1052397):

    Define chromeos_product instead, which takes either "browser" or "ash".

    Re-define the following variables as:

    is_chromeos_lacros = chromeos_product == "browser"

    is_chromeos_ash = chromeos_product == "ash"

clang_base_path

    Current value (from the default) = "//third_party/llvm-build/Release+Asserts"

      From //build/config/clang/clang.gni:22

clang_diagnostic_dir

    Current value (from the default) = "../../tools/clang/crashreports"

      From //build/config/compiler/compiler.gni:129

clang_embed_bitcode

    Current value (from the default) = false

      From //build/config/clang/clang.gni:26

    Specifies whether or not bitcode should be embedded during compilation.

    This is used for creating a MLGO corpus from Chromium in the non-ThinLTO case.

clang_emit_debug_info_for_profiling

    Current value (from the default) = false

      From //build/config/compiler/BUILD.gn:110

    Emit debug information for profiling wile building with clang.

    Only enable this for ChromeOS official builds for AFDO.

clang_sample_profile_path

    Current value (from the default) = ""

      From //build/config/compiler/BUILD.gn:90

    Path to an AFDO profile to use while building with clang, if any. Empty

    implies none.

clang_use_chrome_plugins

    Current value (from the default) = true

      From //build/config/clang/clang.gni:14

clang_use_default_sample_profile

    Current value (from the default) = false

      From //build/config/compiler/BUILD.gn:99

clang_version

    Current value (from the default) = "17"

      From //build/toolchain/toolchain.gni:41

com_init_check_hook_disabled

    Current value (from the default) = false

      From //base/BUILD.gn:67

    Set to true to disable COM init check hooks.

compiler_timing

    Current value (from the default) = false

      From //build/config/compiler/BUILD.gn:113

    Turn this on to have the compiler output extra timing information.

compute_build_timestamp

    Current value (from the default) = "compute_build_timestamp.py"

      From //build/timestamp.gni:17

    This should be the filename of a script that prints a single line

    containing an integer that's a unix timestamp in UTC.

    This timestamp is used as build time and will be compiled into

    other code.

   

    This argument may look unused. Before removing please check with the

    chromecast team to see if they still use it internally.

compute_inputs_for_analyze

    Current value (from the default) = false

      From //build/config/compute_inputs_for_analyze.gni:13

    Enable this flag when running "gn analyze".

   

    This causes some gn actions to compute inputs immediately (via exec_script)

    where they would normally compute them only when executed (and write them to

    a depfile).

   

    This flag will slow down GN, but is required for analyze to work properly.

concurrent_links

    Current value (from the default) = -1

      From //build/toolchain/concurrent_links.gni:23

    Limit the number of concurrent links; we often want to run fewer

    links at once than we do compiles, because linking is memory-intensive.

    The default to use varies by platform and by the amount of memory

    available, so we call out to a script to get the right value.

coverage_instrumentation_input_file

    Current value (from the default) = ""

      From //build/config/coverage/coverage.gni:36

    The path to the coverage instrumentation input file should be a source root

    absolute path (e.g. //out/Release/coverage_instrumentation_input.txt), and

    the file consists of multiple lines where each line represents a path to a

    source file, and the paths must be relative to the root build directory.

    e.g. ../../base/task/post_task.cc for build directory 'out/Release'.

   

    NOTE that this arg will be non-op if use_clang_coverage is false.

cros_board

    Current value (from the default) = ""

      From //build/config/chromeos/args.gni:8

    This is used only by Simple Chrome to bind its value to test-runner scripts

    generated at build-time.

cros_sdk_version

    Current value (from the default) = ""

      From //build/config/chromeos/args.gni:12

    Similar to cros_board above, this used only by test-runner scripts in

    Simple Chrome.

current_cpu

    Current value (from the default) = ""

      (Internally set; try `gn help current_cpu`.)

current_os

    Current value (from the default) = ""

      (Internally set; try `gn help current_os`.)

custom_toolchain

    Current value (from the default) = ""

      From //build/config/BUILDCONFIG.gn:147

    Allows the path to a custom target toolchain to be injected as a single

    argument, and set as the default toolchain.

dcheck_always_on

    Current value (from the default) = false

      From //build/config/dcheck_always_on.gni:25

dcheck_is_configurable

    Current value (from the default) = false

      From //build/config/dcheck_always_on.gni:14

    Enables DCHECKs to be built-in, but to default to being non-fatal/log-only.

    DCHECKS can then be set as fatal/non-fatal via the "DcheckIsFatal" feature.

    See https://bit.ly/dcheck-albatross for details on how this is used.

debuggable_apks

    Current value (from the default) = true

      From //build/config/android/config.gni:219

    Mark APKs as android:debuggable="true".

default_min_sdk_version

    Current value = 21

      From //.gn:67

    Overridden from the default = 24

      From //build/config/android/config.gni:60

    The default to use for android:minSdkVersion for targets that do

    not explicitly set it.

devtools_grd_location

    Current value (from the default) = ""

      From //build/config/devtools.gni:35

devtools_instrumentation_dumping

    Current value (from the default) = false

      From //build/config/android/abi.gni:24

    Only effective if use_order_profiling = true. When this is true,

    instrumentation switches from startup profiling after a delay, and

    then waits for a devtools memory dump request to dump all

    profiling information. When false, the same delay is used to switch from

    startup, and then after a second delay all profiling information is dumped.

    See base::android::orderfile::StartDelayedDump for more information.

devtools_location

    Current value (from the default) = ""

      From //build/config/devtools.gni:33

    DevTools is building a standalone version

devtools_root_location

    Current value (from the default) = ""

      From //build/config/devtools.gni:34

disable_android_lint

    Current value (from the default) = false

      From //build/config/android/config.gni:229

    Turns off android lint.

disable_libfuzzer

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:87

    Helper variable for testing builds with disabled libfuzzer.

    Not for client use.

enable_all_rust_features

    Current value (from the default) = false

      From //build/config/rust.gni:34

    As we incrementally enable Rust on mainstream builders, we want to enable

    the toolchain (by switching 'enable_rust' to true) while still disabling

    almost all Rust features). Yet we still want to have some builders with

    all Rust features enabled.

enable_arsc_obfuscation

    Current value (from the default) = true

      From //build/config/android/config.gni:247

    Controls whether |short_resource_paths| and |strip_resource_names| are

    respected. Useful when trying to analyze APKs using tools that do not

    support mapping these names.

enable_backup_ref_ptr_feature_flag

    Current value (from the default) = false

      From //base/allocator/partition_allocator/partition_alloc.gni:171

    Enable the feature flag required to activate backup ref pointers. That is to

    say `PartitionAllocBackupRefPtr`.

   

    This is meant to be used primarily on bots. It is much easier to override

    the feature flags using a binary flag instead of updating multiple bots's

    scripts to pass command line arguments.

enable_backup_ref_ptr_slow_checks

    Current value (from the default) = false

      From //base/allocator/partition_allocator/partition_alloc.gni:163

enable_backup_ref_ptr_support

    Current value (from the default) = false

      From //base/allocator/partition_allocator/partition_alloc.gni:120

enable_base_tracing

    Current value (from the default) = false

      From //build_overrides/build.gni:52

    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_baseline_profiles

    Current value (from the default) = false

      From //build/config/android/config.gni:258

    Controls whether |baseline_profile_path| is respected. Useful to disable

    baseline profiles.

    Currently disabled while bundletool does not support baseline profiles in

    non-base splits.

enable_call_graph_profile_sort

    Current value (from the default) = false

      From //build/config/compiler/BUILD.gn:155

    Turn off the --call-graph-profile-sort flag for lld by default. Enable

    selectively for targets where it's beneficial.

enable_cast_audio_renderer

    Current value (from the default) = false

      From //build/config/chromecast_build.gni:26

    True to enable the cast audio renderer.

   

    TODO(crbug.com/1293520): Remove this buildflag.

enable_cast_receiver

    Current value (from the default) = false

      From //build/config/chromecast_build.gni:44

    Set this true for a Chromecast build. Chromecast builds are supported on

    Linux, Android, ChromeOS, and Fuchsia.

enable_cast_renderer

    Current value (from the default) = false

      From //build/config/chromecast_build.gni:53

enable_cet_shadow_stack

    Current value (from the default) = false

      From //build/config/compiler/compiler.gni:136

    Mark binaries as compatible with Shadow Stack of Control-flow Enforcement

    Technology (CET). If Windows version and hardware supports the feature and

    it's enabled by OS then additional validation of return address will be

    performed as mitigation against Return-oriented programming (ROP).

    https://chromium.googlesource.com/chromium/src/+/main/docs/design/sandbox.md#cet-shadow-stack

enable_check_raw_ptr_fields

    Current value (from the default) = false

      From //build/config/clang/clang.gni:18

enable_chrome_android_internal

    Current value (from the default) = false

      From //build/config/android/config.gni:56

enable_dangling_raw_ptr_checks

    Current value (from the default) = false

      From //base/allocator/partition_allocator/partition_alloc.gni:174

enable_dangling_raw_ptr_feature_flag

    Current value (from the default) = false

      From //base/allocator/partition_allocator/partition_alloc.gni:182

    Enable the feature flag required to check for dangling pointers. That is to

    say `PartitionAllocDanglingPtr`.

   

    This is meant to be used primarily on bots. It is much easier to override

    the feature flags using a binary flag instead of updating multiple bots's

    scripts to pass command line arguments.

enable_dangling_raw_ptr_perf_experiment

    Current value (from the default) = false

      From //base/allocator/partition_allocator/partition_alloc.gni:192

    Enables the dangling raw_ptr checks feature for the performance experiment.

    Not every dangling pointers have been fixed or annotated yet. To avoid

    accounting for the cost of calling the PA's embedder's callbacks when a

    dangling pointer has been detected, this simulates the raw_ptr to be

    allowed to dangle.

   

    This flag is temporary, and isn't used by PA embedders, so it doesn't need

    to go through build_overrides

enable_dsyms

    Current value (from the default) = false

      From //build/config/apple/symbols.gni:17

    Produce dSYM files for targets that are configured to do so. dSYM

    generation is controlled globally as it is a linker output (produced via

    the //build/toolchain/apple/linker_driver.py. Enabling this will result in

    all shared library, loadable module, and executable targets having a dSYM

    generated.

enable_expensive_dchecks

    Current value (from the default) = true

      From //build/config/dcheck_always_on.gni:33

enable_full_stack_frames_for_profiling

    Current value (from the default) = false

      From //build/config/compiler/BUILD.gn:67

    Compile in such a way as to make it possible for the profiler to unwind full

    stack frames. Setting this flag has a large effect on the performance of the

    generated code than just setting profiling, but gives the profiler more

    information to analyze.

    Requires profiling to be set to true.

enable_incremental_d8

    Current value (from the default) = true

      From //build/config/android/config.gni:284

    Reduce build time by using d8 incremental build.

enable_iterator_debugging

    Current value (from the default) = false

      From //build/config/c++/c++.gni:40

    When set, enables libc++ debug mode with iterator debugging.

   

    Iterator debugging is generally useful for catching bugs. But it can

    introduce extra locking to check the state of an iterator against the state

    of the current object. For iterator- and thread-heavy code, this can

    significantly slow execution - two orders of magnitude slowdown has been

    seen (crbug.com/903553) and iterator debugging also slows builds by making

    generation of snapshot_blob.bin take ~40-60 s longer. Therefore this

    defaults to off.

enable_java_asserts

    Current value (from the default) = true

      From //build/config/android/config.gni:281

    Whether java assertions and Preconditions checks are enabled.

enable_js_protobuf

    Current value (from the default) = true

      From //third_party/protobuf/proto_library.gni:141

    Allows subprojects to omit javascript dependencies (e.g.) closure_compiler

    and google-closure-library.

enable_kythe_annotations

    Current value (from the default) = false

      From //build/toolchain/kythe.gni:10

    Enables Kythe annotations necessary to build cross references.

enable_libaom

    Current value = true

      From //.gn:62

    Overridden from the default = false

      From //third_party/libaom/options.gni:7

    Enable encoding and decoding AV1 video files.

enable_libaom_decoder

    Current value (from the default) = false

      From //third_party/libaom/options.gni:10

    To be deprecated soon.

enable_log_error_not_reached

    Current value (from the default) = false

      From //build/config/logging.gni:12

enable_modular_updater

    Current value (from the default) = false

      From //build/config/chromecast_build.gni:21

    Set true to enable modular_updater.

enable_mutex_priority_inheritance

    Current value (from the default) = false

      From //base/BUILD.gn:72

    Set to true to enable mutex priority inheritance. See the comments in

    LockImpl::PriorityInheritanceAvailable() in lock_impl_posix.cc for the

    platform requirements to safely enable priority inheritance.

enable_nocompile_tests

    Current value (from the default) = false

      From //build/nocompile.gni:72

    TODO(crbug.com/1442625): Enable for Windows.

enable_opengl_apitrace

    Current value (from the default) = false

      From //build/config/ozone.gni:34

    Enable explicit apitrace (https://apitrace.github.io) loading.

    This requires apitrace library with additional bindings.

    See ChromeOS package for details:

    https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/2659419

    Chrome will not start without an apitrace.so library.

    Trace will be saved to /tmp/gltrace.dat file by default. You can

    override it at run time with TRACE_FILE= environment variable.

enable_paint_preview

    Current value (from the default) = true

      From //build/config/buildflags_paint_preview.gni:15

    Enable basic paint preview support. Does not work on iOS. Should

    not be included with Chromecast hardware devices.

    Used by //components/paint_preview and //third_party/harfbuzz-ng.

    TODO(crbug.com/webrtc/11223) Move back this file in

    //components/paint_preview/ once WebRTC doesn't roll harfbuzz-ng anymore,

    for consistency sake.

enable_pkeys

    Current value (from the default) = false

      From //base/allocator/partition_allocator/partition_alloc.gni:330

    pkeys support is explicitly disabled in all Cronet builds, as some test

    dependencies that use partition_allocator are compiled in AOSP against a

    version of glibc that does not include pkeys syscall numbers.

enable_pointer_compression_support

    Current value (from the default) = false

      From //base/allocator/partition_allocator/partition_alloc.gni:101

    Introduces pointer compression support in PA. These are 4-byte

    pointers that can point within the core pools (regular and BRP).

   

    This is effective only for memory allocated from PartitionAlloc, so it is

    recommended to enable PA-E above, but isn't strictly necessary. Embedders

    can create and use PA partitions explicitly.

enable_pointer_subtraction_check

    Current value (from the default) = false

      From //base/allocator/partition_allocator/partition_alloc.gni:105

    Enables a bounds check when two pointers (at least one being raw_ptr) are

    subtracted (if supported by the underlying implementation).

enable_precompiled_headers

    Current value (from the default) = true

      From //build/config/pch.gni:14

enable_profiling

    Current value (from the default) = false

      From //build/config/compiler/compiler.gni:70

    Compile in such a way as to enable profiling of the generated code. For

    example, don't omit the frame pointer and leave in symbols.

enable_proguard_obfuscation

    Current value (from the default) = true

      From //build/config/android/config.gni:242

    Controls whether proguard obfuscation is enabled for targets

    configured to use it.

enable_resource_allowlist_generation

    Current value (from the default) = false

      From //build/toolchain/gcc_toolchain.gni:28

enable_rust

    Current value (from the default) = false

      From //build/config/rust.gni:27

enable_rust_base_conversions

    Current value (from the default) = false

      From //build/config/rust.gni:83

    Conversions between Rust types and C++ types.

enable_rust_boringssl

    Current value (from the default) = false

      From //build/config/rust.gni:104

    Enable Boringssl Rust bindings generation

enable_rust_crash

    Current value (from the default) = true

      From //build/config/rust.gni:89

    Support for chrome://crash-rust to check crash dump collection works.

enable_rust_gnrt

    Current value (from the default) = false

      From //build/config/rust.gni:98

    Support for the 'gnrt' Rust tool.

enable_rust_gtest_interop

    Current value (from the default) = false

      From //build/config/rust.gni:101

    Rust gtest interop

enable_rust_json

    Current value (from the default) = false

      From //build/config/rust.gni:86

    The base::JSONReader implementation. Requires base conversions.

enable_rust_mojo

    Current value (from the default) = false

      From //build/config/rust.gni:95

    Support for Rust mojo bindings.

enable_rust_qr

    Current value (from the default) = false

      From //build/config/rust.gni:92

    Support for QR code generation - see https://crbug.com/1431991.

enable_segment_heap

    Current value (from the default) = false

      From //build/config/win/manifest.gni:46

enable_shadow_call_stack

    Current value (from the default) = false

      From //build/config/compiler/BUILD.gn:190

    Enable ShadowCallStack for compiled binaries. SCS stores a pointer to a

    shadow call stack in register x18. Hence, x18 must not be used by the OS

    or libraries. We assume that to be the case for high end Android

    configurations. For more details see

    https://clang.llvm.org/docs/ShadowCallStack.html

enable_shadow_metadata

    Current value (from the default) = false

      From //base/allocator/partition_allocator/partition_alloc.gni:201

    Shadow metadata is still under development and only supports Linux

    for now.

enable_stack_trace_line_numbers

    Current value (from the default) = false

      From //build/config/logging.gni:13

enable_stripping

    Current value (from the default) = false

      From //build/config/apple/symbols.gni:24

    Strip symbols from linked targets by default. If this is enabled, the

    //build/config/apple:strip_all config will be applied to all linked targets.

    If custom stripping parameters are required, remove that config from a

    linked target and apply custom -Wcrl,strip flags. See

    //build/toolchain/apple/linker_driver.py for more information.

enable_trace_event_bytecode_rewriting

    Current value (from the default) = false

      From //build/config/android/config.gni:290

enable_unused_resource_stripping

    Current value (from the default) = true

      From //build/config/android/config.gni:252

    Controls whether |strip_unused_resources| is respected. Useful when trying

    to analyze APKs using tools that do not support missing resources from

    resources.arsc.

exclude_unwind_tables

    Current value (from the default) = false

      From //build/config/compiler/compiler.gni:125

    Exclude unwind tables by default for official builds as unwinding can be

    done from stack dumps produced by Crashpad at a later time "offline" in the

    crash server. Since this increases binary size, we don't recommend including

    them in shipping builds.

    For unofficial (e.g. development) builds and non-Chrome branded (e.g. Cronet

    which doesn't use Crashpad, crbug.com/479283) builds it's useful to be able

    to unwind at runtime.

    Include the unwind tables on Android even for official builds, as otherwise

    the crash dumps generated by Android's debuggerd are largely useless, and

    having this additional mechanism to understand issues is particularly helpful

    to WebView.

expectations_failure_dir

    Current value (from the default) = "//out/Arm64_qt_debug/failed_expectations"

      From //build/config/android/config.gni:268

    Where to write failed expectations for bots to read.

extended_tracing_enabled

    Current value (from the default) = false

      From //base/trace_event/tracing.gni:11

    Enable more trace events. Disabled by default due to binary size impact,

    but highly recommended for local development.

extra_sysroot_libs

    Current value (from the default) = []

      From //build/config/rust.gni:64

    Non-rlib libs provided in the toolchain sysroot. Usually this is empty, but

    e.g. the Android Rust Toolchain provides a libunwind.a that rustc expects.

fail_on_android_expectations

    Current value (from the default) = false

      From //build/config/android/config.gni:238

    Causes expectation failures to break the build, otherwise, just warns on

    stderr and writes a failure file to $android_configuration_failure_dir:

fail_on_san_warnings

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:112

    When true, sanitizer warnings will cause test case failures.

fatal_linker_warnings

    Current value (from the default) = true

      From //build/config/compiler/BUILD.gn:75

    Enable fatal linker warnings. Building Chromium with certain versions

    of binutils can cause linker warning.

forbid_non_component_debug_builds

    Current value (from the default) = false

      From //build/config/compiler/compiler.gni:112

    Whether an error should be raised on attempts to make debug builds with

    is_component_build=false. Very large debug symbols can have unwanted side

    effects so this is enforced by default for chromium.

force_enable_raw_ptr_exclusion

    Current value (from the default) = false

      From //base/allocator/partition_allocator/partition_alloc.gni:124

    RAW_PTR_EXCLUSION macro is disabled on official builds because it increased

    binary size. This flag can be used to enable it for official builds too.

force_rustc_color_output

    Current value (from the default) = false

      From //build/config/rust.gni:74

    Force-enable `--color=always` for rustc, even when it would be disabled for

    a platform. Mostly applicable to Windows, where new versions can handle ANSI

    escape sequences but it's not reliable in general.

gcc_target_rpath

    Current value (from the default) = ""

      From //build/config/gcc/BUILD.gn:19

    When non empty, overrides the target rpath value. This allows a user to

    make a Chromium build where binaries and shared libraries are meant to be

    installed into separate directories, like /usr/bin/chromium and

    /usr/lib/chromium for instance. It is useful when a build system that

    generates a whole target root filesystem (like Yocto) is used on top of gn,

    especially when cross-compiling.

    Note: this gn arg is similar to gyp target_rpath generator flag.

generate_fuzzer_owners

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:182

    Generates an owners file for each fuzzer test.

    TODO(crbug.com/1194183): Remove this arg when finding OWNERS is faster.

generate_linker_map

    Current value (from the default) = false

      From //build/toolchain/toolchain.gni:21

    Used for binary size analysis.

glue_core_pools

    Current value (from the default) = false

      From //base/allocator/partition_allocator/partition_alloc.gni:93

    Puts the regular and BRP pools right next to each other, so that we can

    check "belongs to one of the two pools" with a single bitmask operation.

gold_path

    Current value (from the default) = ""

      From //build/config/compiler/BUILD.gn:71

    When we are going to use gold we need to find it.

    This is initialized below, after use_gold might have been overridden.

goma_dir

    Current value (from the default) = ""

      From //build/toolchain/goma.gni:17

    Absolute directory containing the gomacc binary.

gtest_enable_absl_printers

    Current value = true

      From //.gn:64

    Overridden from the default = true

      From //build_overrides/build.gni:64

    If true, it assumes that //third_party/abseil-cpp is an available

    dependency for googletest.

gtk_version

    Current value (from the default) = 3

      From //build/config/linux/gtk/gtk.gni:13

    The (major) version of GTK to build against.  A different version may be

    loaded at runtime.

host_byteorder

    Current value (from the default) = "undefined"

      From //build/config/host_byteorder.gni:9

host_cpu

    Current value (from the default) = "x64"

      (Internally set; try `gn help host_cpu`.)

host_os

    Current value (from the default) = "linux"

      (Internally set; try `gn help host_os`.)

host_pkg_config

    Current value (from the default) = ""

      From //build/config/linux/pkg_config.gni:36

    A optional pkg-config wrapper to use for tools built on the host.

host_toolchain

    Current value (from the default) = ""

      From //build/config/BUILDCONFIG.gn:151

    This should not normally be set as a build argument.  It's here so that

    every toolchain can pass through the "global" value via toolchain_args().

icu_copy_icudata_to_root_build_dir

    Current value (from the default) = true

      From //third_party/icu/config.gni:32

    If set, the ":icudata" target will copy the ICU data to $root_build_dir.

icu_disable_thin_archive

    Current value (from the default) = false

      From //third_party/icu/config.gni:24

    If true, compile icu into a standalone static library. Currently this is

    only useful on Chrome OS.

icu_fuchsia_extra_compile_flags

    Current value (from the default) = []

      From //third_party/icu/config.gni:39

    Fuchsia sometimes requires extra compilation flags for ICU to adapt it to

    its current toolchain. Since it takes a while for ICU to roll through

    Fuchsia, it can take a long time from an ICU commit to a fix rolling into

    Fuchsia. This flag allows us to define the flag ahead of time in

    //build/icu.gni, and remove the rollout issues.

icu_fuchsia_override_data_dir

    Current value (from the default) = ""

      From //third_party/icu/config.gni:29

    If set to nonempty, this is the label of the directory to be used to pull

    the ICU data files content.  The setting has effect only when building

    inside the Fuchsia source tree.

icu_use_data_file

    Current value (from the default) = true

      From //third_party/icu/config.gni:15

    Tells icu to load an external data file rather than rely on the icudata

    being linked directly into the binary.

icu_use_stub_data

    Current value (from the default) = true

      From //third_party/icu/config.gni:20

    If true, then this creates a stub data file. This should be disabled if

    a custom data file will be used instead, in order to avoid conflicting

    symbols.

incremental_install

    Current value (from the default) = false

      From //build/config/android/config.gni:12

    Build incremental targets whenever possible.

    See //build/android/incremental_install/README.md for more details.

init_stack_vars

    Current value (from the default) = true

      From //build/config/compiler/BUILD.gn:138

    Initialize all local variables with a pattern. This flag will fill

    uninitialized floating-point types (and 32-bit pointers) with 0xFF and the

    rest with 0xAA. This makes behavior of uninitialized memory bugs consistent,

    recognizable in the debugger, and crashes on memory accesses through

    uninitialized pointers.

   

    TODO(crbug.com/1131993): This regresses binary size by ~1MB on Android and

    needs to be evaluated before enabling it there as well.

init_stack_vars_zero

    Current value (from the default) = false

      From //build/config/compiler/BUILD.gn:142

    Zero init has favorable performance/size tradeoffs for Chrome OS

    but was not evaluated for other platforms.

ios_deployment_target

    Current value = "12.0"

      From //.gn:52

    Overridden from the default = "15.0"

      From //build/config/ios/ios_sdk_overrides.gni:10

    Version of iOS that we're targeting.

ios_stack_profiler_enabled

    Current value (from the default) = true

      From //base/BUILD.gn:77

    Control whether the ios stack sampling profiler is enabled. This flag is

    only supported on iOS 64-bit architecture, but some project build //base

    for 32-bit architecture.

is_asan

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:14

    Compile for Address Sanitizer to find memory bugs.

is_cast_android

    Current value (from the default) = false

      From //build/config/chromecast_build.gni:34

    Set this to true to build for Android-based Cast devices.

    Set this to false to use the defaults for Android.

is_cast_audio_only

    Current value (from the default) = false

      From //build/config/chromecast_build.gni:14

    Set this true for an audio-only Chromecast build.

    TODO(crbug.com/1293538): Replace with a buildflag for speaker-only builds not

    specific to Cast.

is_castos

    Current value (from the default) = false

      From //build/config/chromecast_build.gni:30

    Set this to true to build for Nest hardware running Linux (aka "CastOS").

    Set this to false to use the defaults for Linux.

is_cfi

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:50

    Compile with Control Flow Integrity to protect virtual calls and casts.

    See http://clang.llvm.org/docs/ControlFlowIntegrity.html

   

    TODO(pcc): Remove this flag if/when CFI is enabled in all official builds.

is_chrome_branded

    Current value (from the default) = false

      From //build/config/chrome_build.gni:9

    Select the desired branding flavor. False means normal Chromium branding,

    true means official Google Chrome branding (requires extra Google-internal

    resources).

is_chrome_for_testing

    Current value (from the default) = false

      From //build/config/chrome_build.gni:15

    Whether to enable the Chrome for Testing (CfT) flavor. This arg is not

    compatible with `is_chrome_branded`.

   

    Design document: https://goo.gle/chrome-for-testing

is_chrome_for_testing_branded

    Current value (from the default) = false

      From //build/config/chrome_build.gni:21

    Whether to use internal Chrome for Testing (CfT).

    Requires `src-internal/` and `is_chrome_for_testing = true`.

   

    When true, use Google-internal icons, otherwise fall back to Chromium icons.

is_chromeos_device

    Current value (from the default) = false

      From //build/config/chromeos/args.gni:26

    Determines if we're building for a Chrome OS device (or VM) and not just

    linux-chromeos. NOTE: Most test targets in Chrome expect to run under

    linux-chromeos, so some have compile-time asserts that intentionally fail

    when this build flag is set. Build and run the tests for linux-chromeos

    instead.

    https://chromium.googlesource.com/chromium/src/+/main/docs/chromeos_build_instructions.md

    https://chromium.googlesource.com/chromiumos/docs/+/main/simple_chrome_workflow.md

is_chromeos_with_hw_details

    Current value (from the default) = false

      From //build/config/chromeos/args.gni:34

    Determines if we collect hardware information in chrome://system and

    feedback logs. A similar build flag "hw_details" is defined in Chrome OS

    (see https://crrev.com/c/3123455).

is_clang

    Current value (from the default) = true

      From //build/config/BUILDCONFIG.gn:139

    Set to true when compiling with the Clang compiler.

is_component_build

    Current value = false

      From //.gn:48

    Overridden from the default = true

      From //build/config/BUILDCONFIG.gn:173

    Component build. Setting to true compiles targets declared as "components"

    as shared libraries loaded dynamically. This speeds up development time.

    When false, components will be linked statically.

   

    For more information see

    https://chromium.googlesource.com/chromium/src/+/main/docs/component_build.md

is_cronet_build

    Current value (from the default) = false

      From //build/config/cronet/config.gni:9

    Control whether cronet is built (this is usually set by the script

    components/cronet/tools/cr_cronet.py as cronet requires specific

    gn args to build correctly).

is_debug

    Current value (from the default) = true

      From //build/config/BUILDCONFIG.gn:163

    Debug build. Enabling official builds automatically sets is_debug to false.

is_high_end_android

    Current value (from the default) = false

      From //build/config/chrome_build.gni:25

    Set to true to enable settings for high end Android devices, typically

    enhancing speed at the expense of resources such as binary sizes and memory.

is_hwasan

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:19

    Compile for Hardware-Assisted Address Sanitizer to find memory bugs

    (android/arm64 only).

    See http://clang.llvm.org/docs/HardwareAssistedAddressSanitizerDesign.html

is_java_debug

    Current value (from the default) = true

      From //build/config/android/config.gni:17

    Java debug on Android. Having this on enables multidexing, and turning it

    off will enable proguard.

is_lsan

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:22

    Compile for Leak Sanitizer to find leaks.

is_msan

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:25

    Compile for Memory Sanitizer to find uninitialized reads.

is_nacl_glibc

    Current value (from the default) = false

      From //build/config/nacl/config.gni:12

    True if nacl_glibc is used.

is_nacl_saigo

    Current value (from the default) = false

      From //build/config/nacl/config.gni:15

    True if saigo_newlib is used.

is_official_build

    Current value (from the default) = false

      From //build/config/BUILDCONFIG.gn:136

    Set to enable the official build level of optimization. This has nothing

    to do with branding, but enables an additional level of optimization above

    release (!is_debug). This might be better expressed as a tri-state

    (debug, release, official) but for historical reasons there are two

    separate flags.

   

    IMPORTANT NOTE: (!is_debug) is *not* sufficient to get satisfying

    performance. In particular, DCHECK()s are still enabled for release builds,

    which can halve overall performance, and do increase memory usage. Always

    set "is_official_build" to true for any build intended to ship to end-users.

is_reven

    Current value (from the default) = false

      From //build/config/chromeos/args.gni:40

    Refers to the separate branding required for the reven build.

is_robolectric

    Current value (from the default) = false

      From //build/config/BUILDCONFIG.gn:156

    Do not set this directly.

    It should be set only by //build/toolchains/android:robolectric_x64.

    True when compiling native code for use with robolectric_binary().

is_skylab

    Current value (from the default) = false

      From //build/config/chromeos/args.gni:29

    Determines if we run the test in skylab, aka the CrOS labs.

is_tsan

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:28

    Compile for Thread Sanitizer to find threading bugs.

is_ubsan

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:32

    Compile for Undefined Behaviour Sanitizer to find various types of

    undefined behaviour (excludes vptr checks).

is_ubsan_no_recover

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:35

    Halt the program if a problem is detected.

is_ubsan_security

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:83

    Enables core ubsan security features. Will later be removed once it matches

    is_ubsan.

is_ubsan_vptr

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:122

    Compile for Undefined Behaviour Sanitizer's vptr checks.

is_unsafe_developer_build

    Current value (from the default) = true

      From //base/BUILD.gn:64

    Unsafe developer build. Has developer-friendly features that may weaken or

    disable security measures like sandboxing or ASLR.

    IMPORTANT: Unsafe developer builds should never be distributed to end users.

ldso_path

    Current value (from the default) = ""

      From //build/config/gcc/BUILD.gn:20

libcxx_is_shared

    Current value (from the default) = false

      From //build/config/c++/c++.gni:54

    WARNING: Setting this to a non-default value is highly discouraged.

    If true, libc++ will be built as a shared library; otherwise libc++ will be

    linked statically. Setting this to something other than the default is

    unsupported and can be broken by libc++ rolls. Note that if this is set to

    true, you must also set libcxx_abi_unstable=false, which is bad for

    performance and memory use.

libcxx_natvis_include

    Current value (from the default) = true

      From //build/config/c++/c++.gni:29

    Builds libcxx Natvis into the symbols for type visualization.

    Set to false to workaround http://crbug.com/966676 and

    http://crbug.com/966687.

libcxx_revision

    Current value (from the default) = "055b2e17ae4f0e2c025ad0c7508b01787df17758"

      From //buildtools/deps_revisions.gni:8

    Used to cause full rebuilds on libc++ rolls. This should be kept in sync

    with the libcxx_revision vars in //DEPS.

libyuv_disable_jpeg

    Current value (from the default) = false

      From //third_party/libyuv/libyuv.gni:15

libyuv_disable_rvv

    Current value (from the default) = false

      From //third_party/libyuv/libyuv.gni:16

libyuv_include_tests

    Current value (from the default) = true

      From //third_party/libyuv/libyuv.gni:14

libyuv_symbols_visible

    Current value (from the default) = false

      From //third_party/libyuv/BUILD.gn:20

    When building a shared library using a target in WebRTC or

    Chromium projects that depends on libyuv, setting this flag

    to true makes libyuv symbols visible inside that library.

libyuv_use_absl_flags

    Current value (from the default) = true

      From //third_party/libyuv/BUILD.gn:15

    Set to false to disable building with absl flags.

libyuv_use_mmi

    Current value (from the default) = false

      From //third_party/libyuv/libyuv.gni:23

libyuv_use_msa

    Current value (from the default) = false

      From //third_party/libyuv/libyuv.gni:21

libyuv_use_neon

    Current value (from the default) = true

      From //third_party/libyuv/libyuv.gni:18

limit_android_deps

    Current value (from the default) = false

      From //build_overrides/build.gni:60

    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 .

lint_android_sdk_root

    Current value (from the default) = "//third_party/android_sdk/public"

      From //build/config/android/config.gni:191

lint_android_sdk_version

    Current value (from the default) = 33

      From //build/config/android/config.gni:192

lld_emit_indexes_and_imports

    Current value (from the default) = false

      From //build/config/clang/clang.gni:30

    Set to true to enable output of ThinLTO index and import files used for

    creating a Chromium MLGO corpus in the ThinLTO case.

llvm_force_head_revision

    Current value (from the default) = false

      From //build/toolchain/toolchain.gni:18

    If this is set to true, we use the revision in the llvm repo to determine

    the CLANG_REVISION to use, instead of the version hard-coded into

    //tools/clang/scripts/update.py. This should only be used in

    conjunction with setting the llvm_force_head_revision DEPS variable when

    `gclient runhooks` is run as well.

mac_sdk_min

    Current value = "10.12"

      From //.gn:50

    Overridden from the default = "10.15"

      From //build/config/mac/mac_sdk_overrides.gni:12

mips_use_mmi

    Current value (from the default) = false

      From //build/config/mips.gni:13

    MIPS MultiMedia Instruction compilation flag.

msan_track_origins

    Current value (from the default) = 2

      From //build/config/sanitizers/sanitizers.gni:40

    Track where uninitialized memory originates from. From fastest to slowest:

    0 - no tracking, 1 - track only the initial allocation site, 2 - track the

    chain of stores leading from allocation site to use site.

needs_gomacc_path_arg

    Current value (from the default) = false

      From //build/toolchain/goma.gni:14

    This flag is for ChromeOS compiler wrapper.

    By passing gomacc path via cmd-line arg, ChromeOS' compiler wrapper

    invokes gomacc inside it.

optimize_for_fuzzing

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:91

    Optimize for coverage guided fuzzing (balance between speed and number of

    branches). Can be also used to remove non-determinism and other issues.

optimize_for_size

    Current value (from the default) = true

      From //build/config/compiler/compiler.gni:43

optional_trace_events_enabled

    Current value (from the default) = false

      From //base/trace_event/tracing.gni:20

ozone_auto_platforms

    Current value (from the default) = false

      From //build/config/ozone.gni:21

    Select platforms automatically. Turn this off for manual control.

ozone_extra_path

    Current value (from the default) = "//build/config/ozone_extra.gni"

      From //build/config/ozone.gni:18

    Ozone extra platforms file path. Can be overridden to build out of

    tree ozone platforms.

ozone_platform

    Current value (from the default) = ""

      From //build/config/ozone.gni:40

    The platform that will used at runtime by default. This can be overridden

    with the command line flag --ozone-platform=.

ozone_platform_cast

    Current value (from the default) = false

      From //build/config/ozone.gni:43

    Compile the 'cast' platform.

ozone_platform_drm

    Current value (from the default) = false

      From //build/config/ozone.gni:46

    Compile the 'drm' platform.

ozone_platform_flatland

    Current value (from the default) = false

      From //build/config/ozone.gni:55

    Compile the 'flatland' platform.

ozone_platform_gbm

    Current value (from the default) = -1

      From //build/config/ozone.gni:25

    TODO(petermcneeley): Backwards compatiblity support for VM images.

    Remove when deprecated. (https://crbug.com/1122009)

ozone_platform_headless

    Current value (from the default) = false

      From //build/config/ozone.gni:49

    Compile the 'headless' platform.

ozone_platform_scenic

    Current value (from the default) = false

      From //build/config/ozone.gni:52

    Compile the 'scenic' platform.

ozone_platform_wayland

    Current value (from the default) = false

      From //build/config/ozone.gni:61

    Compile the 'wayland' platform.

ozone_platform_x11

    Current value (from the default) = false

      From //build/config/ozone.gni:58

    Compile the 'x11' platform.

partition_alloc_optimized_debug

    Current value (from the default) = true

      From //base/allocator/partition_allocator/partition_alloc.gni:63

    Turns on compiler optimizations in PartitionAlloc in Debug build.

    If enabling PartitionAlloc-Everywhere in Debug build for tests in Debug

    build, since all memory allocations and deallocations are executed by

    non-optimized PartitionAlloc, chrome (including tests) will be much

    slower. This will cause debug trybots' timeouts. If we want to debug

    PartitionAlloc itself, use partition_alloc_optimized_debug=false.

    Otherwise, use partition_alloc_optimized_debug=true to enable optimized

    PartitionAlloc.

pgo_data_path

    Current value (from the default) = ""

      From //build/config/compiler/pgo/pgo.gni:35

    When using chrome_pgo_phase = 2, read profile data from this path.

pkg_config

    Current value (from the default) = ""

      From //build/config/linux/pkg_config.gni:33

    A pkg-config wrapper to call instead of trying to find and call the right

    pkg-config directly. Wrappers like this are common in cross-compilation

    environments.

    Leaving it blank defaults to searching PATH for 'pkg-config' and relying on

    the sysroot mechanism to find the right .pc files.

proprietary_codecs

    Current value (from the default) = false

      From //build/config/features.gni:31

    Enables proprietary codecs and demuxers; e.g. H264, AAC, MP3, and MP4.

    We always build Google Chrome and Chromecast with proprietary codecs.

   

    Note: this flag is used by WebRTC which is DEPSed into Chrome. Moving it

    out of //build will require using the build_overrides directory.

   

    Do not add any other conditions to the following line.

   

    TODO(crbug.com/1314528): Remove chromecast-related conditions and force

    builds to explicitly specify this.

put_ref_count_in_previous_slot

    Current value (from the default) = false

      From //base/allocator/partition_allocator/partition_alloc.gni:160

rbe_cc_cfg_file

    Current value (from the default) = "../../buildtools/reclient_cfgs/chromium-browser-clang/rewrapper_linux.cfg"

      From //build/toolchain/rbe.gni:29

rbe_cfg_dir

    Current value (from the default) = "../../buildtools/reclient_cfgs"

      From //build/toolchain/rbe.gni:20

    The directory where the re-client configuration files are.

rbe_cros_cc_wrapper

    Current value (from the default) = "../../buildtools/reclient/rewrapper"

      From //build/toolchain/rbe.gni:48

    Set to the path of the RBE recleint wrapper for ChromeOS.

rbe_exec_root

    Current value (from the default) = "/opt/webrtc/webrtc/src/"

      From //build/toolchain/rbe.gni:11

    Execution root - this should be the root of the source tree.

    This is defined here instead of in the config file because

    this will vary depending on where the user has placed the

    chromium source on their system.

rbe_link_cfg_file

    Current value (from the default) = "../../buildtools/reclient_cfgs/chromium-browser-clang/rewrapper_linux_link.cfg"

      From //build/toolchain/rbe.gni:31

rbe_py_cfg_file

    Current value (from the default) = "../../buildtools/reclient_cfgs/python/rewrapper_linux.cfg"

      From //build/toolchain/rbe.gni:27

removed_rust_stdlib_libs

    Current value (from the default) = []

      From //build/config/rust.gni:60

    Any removed std rlibs in your Rust toolchain, relative to the standard

    Rust toolchain. Typically used with 'rust_sysroot_absolute'

rtc_audio_device_plays_sinus_tone

    Current value (from the default) = false

      From //webrtc.gni:199

    When set to true, replace the audio output with a sinus tone at 440Hz.

    The ADM will ask for audio data from WebRTC but instead of reading real

    audio samples from NetEQ, a sinus tone will be generated and replace the

    real audio samples.

rtc_build_dcsctp

    Current value (from the default) = true

      From //webrtc.gni:320

    Enable the dcsctp backend for DataChannels and related unittests

rtc_build_examples

    Current value (from the default) = true

      From //webrtc.gni:134

    Set this to false to skip building examples.

rtc_build_json

    Current value (from the default) = true

      From //webrtc.gni:260

    Disable these to not build components which can be externally provided.

rtc_build_libevent

    Current value (from the default) = true

      From //webrtc.gni:274

rtc_build_libsrtp

    Current value (from the default) = true

      From //webrtc.gni:261

rtc_build_libvpx

    Current value (from the default) = true

      From //webrtc.gni:262

rtc_build_opus

    Current value (from the default) = true

      From //webrtc.gni:264

rtc_build_ssl

    Current value (from the default) = true

      From //webrtc.gni:265

rtc_build_tools

    Current value (from the default) = true

      From //webrtc.gni:137

    Set this to false to skip building tools.

rtc_build_with_neon

    Current value (from the default) = true

      From //webrtc.gni:173

rtc_builtin_ssl_root_certificates

    Current value (from the default) = true

      From //webrtc.gni:96

    Setting this to false will require the API user to pass in their own

    SSLCertificateVerifier to verify the certificates presented from a

    TLS-TURN server. In return disabling this saves around 100kb in the binary.

rtc_disable_check_msg

    Current value (from the default) = false

      From //webrtc.gni:308

    Set this to true to disable detailed error message and logging for

    RTC_CHECKs.

rtc_disable_logging

    Current value (from the default) = false

      From //webrtc.gni:301

    Set this to true to fully remove logging from WebRTC.

rtc_disable_metrics

    Current value (from the default) = false

      From //webrtc.gni:311

    Set this to true to disable webrtc metrics.

rtc_disable_trace_events

    Current value (from the default) = false

      From //webrtc.gni:304

    Set this to true to disable trace events.

rtc_dlog_always_on

    Current value (from the default) = false

      From //webrtc.gni:55

    Setting this to true, will make RTC_DLOG() expand to log statements instead

    of being removed by the preprocessor.

    This is useful for example to be able to get RTC_DLOGs on a release build.

rtc_enable_android_aaudio

    Current value (from the default) = false

      From //webrtc.gni:156

    Experimental: enable use of Android AAudio which requires Android SDK 26 or above

    and NDK r16 or above.

rtc_enable_avx2

    Current value (from the default) = true

      From //webrtc.gni:287

rtc_enable_bwe_test_logging

    Current value (from the default) = false

      From //webrtc.gni:131

    Set this to true to enable BWE test logging.

rtc_enable_external_auth

    Current value (from the default) = false

      From //webrtc.gni:121

    Enable when an external authentication mechanism is used for performing

    packet authentication for RTP packets instead of libsrtp.

rtc_enable_google_benchmarks

    Current value (from the default) = true

      From //webrtc.gni:59

    Enables additional build targets that rely on

    //third_party/google_benchmarks.

rtc_enable_grpc

    Current value (from the default) = false

      From //webrtc.gni:323

    Enable gRPC used for negotiation in multiprocess tests

rtc_enable_libevent

    Current value (from the default) = true

      From //webrtc.gni:273

rtc_enable_objc_symbol_export

    Current value (from the default) = false

      From //webrtc.gni:66

    Setting this to true will make RTC_OBJC_EXPORT expand to code that will

    manage symbols visibility. By default, Obj-C/Obj-C++ symbols are exported

    if C++ symbols are but setting this arg to true while keeping

    rtc_enable_symbol_export=false will only export RTC_OBJC_EXPORT

    annotated symbols.

rtc_enable_protobuf

    Current value (from the default) = true

      From //webrtc.gni:254

    Enables the use of protocol buffers for debug recordings.

rtc_enable_sctp

    Current value (from the default) = true

      From //webrtc.gni:257

    Set this to disable building with support for SCTP data channels.

rtc_enable_symbol_export

    Current value (from the default) = false

      From //webrtc.gni:48

    Setting this to true will make RTC_EXPORT (see rtc_base/system/rtc_export.h)

    expand to code that will manage symbols visibility.

rtc_enable_win_wgc

    Current value (from the default) = false

      From //webrtc.gni:228

    When set to true, a capturer implementation that uses the

    Windows.Graphics.Capture APIs will be available for use. This introduces a

    dependency on the Win 10 SDK v10.0.17763.0.

rtc_exclude_audio_processing_module

    Current value (from the default) = false

      From //webrtc.gni:128

    Selects whether the audio processing module should be excluded.

rtc_exclude_field_trial_default

    Current value (from the default) = false

      From //webrtc.gni:78

rtc_exclude_metrics_default

    Current value (from the default) = false

      From //webrtc.gni:85

    Setting this to true will define WEBRTC_EXCLUDE_METRICS_DEFAULT which

    will tell the pre-processor to remove the default definition of symbols

    needed to use metrics. In that case a new implementation needs to be

    provided.

rtc_exclude_system_time

    Current value (from the default) = false

      From //webrtc.gni:91

    Setting this to true will define WEBRTC_EXCLUDE_SYSTEM_TIME which

    will tell the pre-processor to remove the default definition of the

    SystemTimeNanos() which is defined in rtc_base/system_time.cc. In

    that case a new implementation needs to be provided.

rtc_exclude_transient_suppressor

    Current value (from the default) = false

      From //webrtc.gni:315

    Set this to true to exclude the transient suppressor in the audio processing

    module from the build.

rtc_include_builtin_audio_codecs

    Current value (from the default) = true

      From //webrtc.gni:215

    When set to false, builtin audio encoder/decoder factories and all the

    audio codecs they depend on will not be included in libwebrtc.{a|lib}

    (they will still be included in libjingle_peerconnection_so.so and

    WebRTC.framework)

rtc_include_dav1d_in_internal_decoder_factory

    Current value (from the default) = true

      From //webrtc.gni:231

    Includes the dav1d decoder in the internal decoder factory when set to true.

rtc_include_ilbc

    Current value (from the default) = true

      From //webrtc.gni:99

    Include the iLBC audio codec?

rtc_include_internal_audio_device

    Current value (from the default) = true

      From //webrtc.gni:282

    Chromium uses its own IO handling, so the internal ADM is only built for

    standalone WebRTC.

rtc_include_opus

    Current value (from the default) = true

      From //webrtc.gni:102

    Disable this to avoid building the Opus audio codec.

rtc_include_pulse_audio

    Current value (from the default) = true

      From //webrtc.gni:278

    Excluded in Chromium since its prerequisites don't require Pulse Audio.

rtc_include_tests

    Current value (from the default) = true

      From //webrtc.gni:294

    Set this to true to build the unit tests.

    Disabled when building with Chromium or Mozilla.

rtc_ios_macos_use_opengl_rendering

    Current value (from the default) = true

      From //webrtc.gni:209

rtc_jsoncpp_root

    Current value (from the default) = "//third_party/jsoncpp/source/include"

      From //webrtc.gni:113

    Used to specify an external Jsoncpp include path when not compiling the

    library that comes with WebRTC (i.e. rtc_build_json == 0).

rtc_libvpx_build_vp9

    Current value (from the default) = true

      From //webrtc.gni:263

rtc_link_pipewire

    Current value (from the default) = false

      From //webrtc.gni:149

    Set this to link PipeWire and required libraries directly instead of using the dlopen.

rtc_opus_support_120ms_ptime

    Current value (from the default) = true

      From //webrtc.gni:106

    Enable this if the Opus version upon which WebRTC is built supports direct

    encoding of 120 ms packets.

rtc_opus_variable_complexity

    Current value (from the default) = false

      From //webrtc.gni:109

    Enable this to let the Opus audio codec change complexity on the fly.

rtc_prefer_fixed_point

    Current value (from the default) = true

      From //webrtc.gni:168

rtc_sanitize_coverage

    Current value (from the default) = ""

      From //webrtc.gni:163

    Set to "func", "block", "edge" for coverage generation.

    At unit test runtime set UBSAN_OPTIONS="coverage=1".

    It is recommend to set include_examples=0.

    Use llvm's sancov -html-report for human readable reports.

    See http://clang.llvm.org/docs/SanitizerCoverage.html .

rtc_ssl_root

    Current value (from the default) = ""

      From //webrtc.gni:117

    Used to specify an external OpenSSL include path when not compiling the

    library that comes with WebRTC (i.e. rtc_build_ssl == 0).

rtc_strict_field_trials

    Current value (from the default) = ""

      From //webrtc.gni:242

    When enabled, a run-time check will make sure that all field trial keys have

    been registered in accordance with the field trial policy, see

    g3doc/field-trials.md. The value can be set to the following:

   

     "dcheck": RTC_DCHECKs that the field trial has been registered. RTC_DCHECK

               must be enabled separately.

   

     "warn": RTC_LOGs a message with LS_WARNING severity if the field trial

             hasn't been registered.

rtc_use_absl_mutex

    Current value (from the default) = false

      From //webrtc.gni:189

    Enable this flag to make webrtc::Mutex be implemented by absl::Mutex.

rtc_use_dummy_audio_file_devices

    Current value (from the default) = false

      From //webrtc.gni:193

    By default, use normal platform audio support or dummy audio, but don't

    use file-based audio playout and record.

rtc_use_h264

    Current value (from the default) = false

      From //webrtc.gni:186

rtc_use_pipewire

    Current value (from the default) = false

      From //webrtc.gni:146

    Set this to use PipeWire on the Wayland display server.

    By default it's only enabled on desktop Linux (excludes ChromeOS) and

    only when using the sysroot as PipeWire is not available in older and

    supported Ubuntu and Debian distributions.

rtc_use_x11

    Current value (from the default) = false

      From //webrtc.gni:140

    Set this to false to skip building code that requires X11.

rtc_use_x11_extensions

    Current value (from the default) = false

      From //webrtc.gni:298

    Set this to false to skip building code that also requires X11 extensions

    such as Xdamage, Xfixes.

rtc_win_undef_unicode

    Current value (from the default) = false

      From //webrtc.gni:223

    When set to true and in a standalone build, it will undefine UNICODE and

    _UNICODE (which are always defined globally by the Chromium Windows

    toolchain).

    This is only needed for testing purposes, WebRTC wants to be sure it

    doesn't assume /DUNICODE and /D_UNICODE but that it explicitly uses

    wide character functions.

rust_sysroot_absolute

    Current value (from the default) = ""

      From //build/config/rust.gni:42

    Chromium provides a Rust toolchain in //third_party/rust-toolchain when

    checkout_rust is True (which is being rolled out by default over time).

   

    To use a custom toolchain instead, specify an absolute path to the root of

    a Rust sysroot, which will have a 'bin' directory and others. Commonly

    /.rustup/toolchains/nightly--

rust_toolchain_supports_nacl

    Current value (from the default) = false

      From //build/config/rust.gni:52

    If you're using a Rust toolchain as specified by rust_sysroot_absolute,

    you can specify whether it supports nacl here.

rustc_version

    Current value (from the default) = ""

      From //build/config/rust.gni:48

    If you're using a Rust toolchain as specified by rust_sysroot_absolute,

    set this to the output of `rustc -V`. Changing this string will cause all

    Rust targets to be rebuilt, which allows you to update your toolchain and

    not break incremental builds.

sample_profile_is_accurate

    Current value (from the default) = true

      From //build/config/compiler/compiler.gni:150

    Whether we should consider the profile we're using to be accurate. Accurate

    profiles have the benefit of (potentially substantial) binary size

    reductions, by instructing the compiler to optimize cold and uncovered

    functions heavily for size. This often comes at the cost of performance.

sanitizer_coverage_flags

    Current value (from the default) = ""

      From //build/config/sanitizers/sanitizers.gni:101

    Value for -fsanitize-coverage flag. Setting this causes

    use_sanitizer_coverage to be enabled.

    This flag is not used for libFuzzer (use_libfuzzer=true). Instead, we use:

        -fsanitize=fuzzer-no-link

    Default value when unset and use_fuzzing_engine=true:

        trace-pc-guard

    Default value when unset and use_sanitizer_coverage=true:

        trace-pc-guard,indirect-calls

save_reproducers_on_lld_crash

    Current value (from the default) = false

      From //build/config/compiler/BUILD.gn:179

    If true, linker crashes will be rerun with `--reproduce` which causes

    a reproducer file to be saved.

show_includes

    Current value (from the default) = false

      From //build/config/compiler/BUILD.gn:170

    Enable -H, which prints the include tree during compilation.

    For use by tools/clang/scripts/analyze_includes.py

skip_secondary_abi_for_cq

    Current value (from the default) = false

      From //build/config/android/abi.gni:36

    *For CQ puposes only* Leads to non-working APKs.

    Forces all APKs/bundles to be 64-bit only to improve build speed in the CQ

    (no need to also build 32-bit library).

strip_debug_info

    Current value (from the default) = false

      From //build/config/compiler/compiler.gni:66

    Android-only: Strip the debug info of libraries within lib.unstripped to

    reduce size. As long as symbol_level > 0, this will still allow stacks to be

    symbolized.

symbol_level

    Current value (from the default) = -1

      From //build/config/compiler/compiler.gni:61

    How many symbols to include in the build. This affects the performance of

    the build since the symbols are large and dealing with them is slow.

      2 means regular build with symbols.

      1 means minimal symbols, usually enough for backtraces only. Symbols with

    internal linkage (static functions or those in anonymous namespaces) may not

    appear when using this level.

      0 means no symbols.

      -1 means auto-set according to debug/release and platform.

sysroot

    Current value (from the default) = ""

      From //build/config/sysroot.gni:18

    The path of the sysroot for the current toolchain. If empty, default

    sysroot is used.

system_headers_in_deps

    Current value (from the default) = false

      From //build/toolchain/gcc_toolchain.gni:34

    Use -MD instead of -MMD for compiler commands. This is useful for tracking

    the comprehensive set of dependencies.

system_libdir

    Current value (from the default) = "lib"

      From //build/config/linux/pkg_config.gni:47

    CrOS systemroots place pkgconfig files at /usr/share/pkgconfig

    and one of /usr/lib/pkgconfig or /usr/lib64/pkgconfig

    depending on whether the systemroot is for a 32 or 64 bit architecture.

   

    When build under GYP, CrOS board builds specify the 'system_libdir' variable

    as part of the GYP_DEFINES provided by the CrOS emerge build or simple

    chrome build scheme. This variable permits controlling this for GN builds

    in similar fashion by setting the `system_libdir` variable in the build's

    args.gn file to 'lib' or 'lib64' as appropriate for the target architecture.

system_webview_apk_target

    Current value (from the default) = "//android_webview:system_webview_apk"

      From //build/config/android/config.gni:264

target_cpu

    Current value = "arm64"

      From //out/Arm64_qt_debug/args.gn:2

    Overridden from the default = ""

      (Internally set; try `gn help target_cpu`.)

target_environment

    Current value (from the default) = ""

      From //build/config/ios/config.gni:11

    Configure the environment for which to build. Could be either "device",

    "simulator" or "catalyst". If unspecified, then it will be assumed to be

    "simulator" if the target_cpu is "x68" or "x64", "device" otherwise. The

    default is only there for compatibility reasons and will be removed (see

    crbug.com/1138425 for more details).

target_os

    Current value = "android"

      From //out/Arm64_qt_debug/args.gn:1

    Overridden from the default = ""

      (Internally set; try `gn help target_os`.)

target_rpath

    Current value (from the default) = ""

      From //build/config/chromecast_build.gni:18

    If non empty, rpath of executables is set to this.

    If empty, default value is used.

target_sysroot

    Current value (from the default) = ""

      From //build/config/sysroot.gni:11

    The path of the sysroot that is applied when compiling using the target

    toolchain.

target_sysroot_dir

    Current value (from the default) = "//build/linux"

      From //build/config/sysroot.gni:14

    The path to directory containing linux sysroot images.

tests_have_location_tags

    Current value (from the default) = true

      From //testing/test.gni:22

    Some component repos (e.g. ANGLE) import //testing but do not have

    "location_tags.json", and so we don't want to try and upload the tags

    for their tests.

    And, some build configs may simply turn off generation altogether.

thin_lto_enable_optimizations

    Current value (from the default) = false

      From //build/config/compiler/BUILD.gn:127

toolchain_for_rust_host_build_tools

    Current value (from the default) = false

      From //build/toolchain/toolchain.gni:26

    Whether this toolchain is to be used for building host tools that are

    consumed during the build process. That includes proc macros and Cargo build

    scripts.

toolkit_views

    Current value (from the default) = false

      From //build/config/ui.gni:33

    True means the UI is built using the "views" framework.

treat_warnings_as_errors

    Current value (from the default) = true

      From //build/config/compiler/compiler.gni:51

    Default to warnings as errors for default workflow, where we catch

    warnings with known toolchains. Allow overriding this e.g. for Chromium

    builds on Linux that could use a different version of the compiler.

    With GCC, warnings in no-Chromium code are always not treated as errors.

update_android_aar_prebuilts

    Current value (from the default) = false

      From //build/config/android/config.gni:226

    When true, updates all android_aar_prebuilt() .info files during gn gen.

    Refer to android_aar_prebuilt() for more details.

use_afl

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:76

    Compile for fuzzing with AFL.

use_allocator_shim

    Current value (from the default) = false

      From //base/allocator/partition_allocator/partition_alloc.gni:72

    Causes all the allocations to be routed via allocator_shim.cc.

use_android_unwinder_v2

    Current value (from the default) = true

      From //build/config/compiler/compiler.gni:144

    Set to true to use the android unwinder V2 implementation.

use_asan_backup_ref_ptr

    Current value (from the default) = false

      From //base/allocator/partition_allocator/partition_alloc.gni:139

use_asan_unowned_ptr

    Current value (from the default) = false

      From //base/allocator/partition_allocator/partition_alloc.gni:142

    Use probe-on-destruct unowned ptr detection with ASAN.

use_aura

    Current value (from the default) = false

      From //build/config/ui.gni:28

    Indicates if Aura is enabled. Aura is a low-level windowing library, sort

    of a replacement for GDI or GTK.

use_blink

    Current value (from the default) = true

      From //build/config/features.gni:40

use_call_graph

    Current value (from the default) = false

      From //build/config/android/abi.gni:28

    Only effective if use_order_profiling = true. When this is true the call

    graph based instrumentation is used.

use_centipede

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:73

    Compile for fuzzing with centipede.

    See https://github.com/google/centipede

use_cfi_cast

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:119

    Enable checks for bad casts: derived cast and unrelated cast.

    TODO(krasin): remove this, when we're ready to add these checks by default.

    https://crbug.com/626794

use_cfi_diag

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:61

    Print detailed diagnostics when Control Flow Integrity detects a violation.

use_cfi_icall

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:58

use_cfi_recover

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:65

    Let Control Flow Integrity continue execution instead of crashing when

    printing diagnostics (use_cfi_diag = true).

use_clang_coverage

    Current value (from the default) = false

      From //build/config/coverage/coverage.gni:23

use_clang_profiling

    Current value (from the default) = false

      From //build/config/profiling/profiling.gni:10

use_clang_profiling_inside_sandbox

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:196

use_custom_libcxx

    Current value (from the default) = true

      From //build/config/c++/c++.gni:15

    Use in-tree libc++ (buildtools/third_party/libc++ and

    buildtools/third_party/libc++abi) instead of the system C++ library for C++

    standard library support.

    Don't check in changes that set this to false for more platforms; doing so

    is not supported.

use_custom_libcxx_for_host

    Current value (from the default) = false

      From //build/config/c++/c++.gni:24

    Use libc++ instead of stdlibc++ when using the host_cpu toolchain, even if

    use_custom_libcxx is false. This is useful for cross-compiles where a custom

    toolchain for the target_cpu has been set as the default toolchain, but

    use_custom_libcxx should still be true when building for the host.  The

    expected usage is to set use_custom_libcxx=false and

    use_custom_libcxx_for_host=true in the passed in buildargs.

use_cxx17

    Current value = true

      From //.gn:79

    Overridden from the default = false

      From //build/config/compiler/BUILD.gn:183

    Allow projects that wish to stay on C++17 to override Chromium's default.

    TODO(crbug.com/1402249): evaluate removing this end of 2023

use_dbus

    Current value (from the default) = false

      From //build/config/features.gni:36

use_debug_fission

    Current value (from the default) = "default"

      From //build/config/compiler/compiler.gni:82

    use_debug_fission: whether to use split DWARF debug info

    files. This can reduce link time significantly, but is incompatible

    with some utilities such as icecc and ccache. Requires gold and

    gcc >= 4.8 or clang.

    http://gcc.gnu.org/wiki/DebugFission

   

    This is a placeholder value indicating that the code below should set

    the default.  This is necessary to delay the evaluation of the default

    value expression until after its input values such as use_gold have

    been set, e.g. by a toolchain_args() block.

use_dummy_lastchange

    Current value (from the default) = false

      From //build/util/lastchange.gni:9

use_dwarf5

    Current value (from the default) = false

      From //build/config/compiler/BUILD.gn:158

    Enable DWARF v5.

use_errorprone_java_compiler

    Current value (from the default) = true

      From //build/config/android/config.gni:222

    Set to false to disable the Errorprone compiler.

use_external_fuzzing_engine

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:79

    Compile for fuzzing with an external engine (e.g., Grammarinator).

use_freeslot_bitmap

    Current value (from the default) = false

      From //base/allocator/partition_allocator/partition_alloc.gni:89

use_full_pdb_paths

    Current value (from the default) = false

      From //build/config/compiler/BUILD.gn:166

    Override this to put full paths to PDBs in Windows PE files. This helps

    windbg and Windows Performance Analyzer with finding the PDBs in some local-

    build scenarios. This is never needed for bots or official builds. Because

    this puts the output directory in the DLLs/EXEs it breaks build determinism.

    Bugs have been reported to the windbg/WPA teams and this workaround will be

    removed when they are fixed.

use_ghash

    Current value (from the default) = true

      From //build/config/compiler/BUILD.gn:117

    Turn this on to use ghash feature of lld for faster debug link on Windows.

    http://blog.llvm.org/2018/01/improving-link-time-on-windows-with.html

use_gio

    Current value (from the default) = false

      From //build/config/features.gni:38

use_glib

    Current value (from the default) = false

      From //build/config/ui.gni:36

use_gold

    Current value (from the default) = false

      From //build/config/compiler/compiler.gni:245

    Whether to use the gold linker from binutils instead of lld or bfd.

use_goma

    Current value (from the default) = false

      From //build/toolchain/goma.gni:9

    Set to true to enable distributed compilation using Goma.

use_goma_rust

    Current value (from the default) = false

      From //build/config/rust.gni:69

    Use goma for Rust builds. Experimental. The only known problem is

    b/193072381, but then again, we don't expect a build speedup before much

    more work is done.

use_goma_thin_lto

    Current value (from the default) = false

      From //build/config/compiler/compiler.gni:100

    If true, use Goma for ThinLTO code generation where applicable.

use_gtk

    Current value (from the default) = falser

      From //build/config/linux/gtk/gtk.gni:9

    Whether or not we should use libgtk.

use_hashed_jni_names

    Current value (from the default) = false

      From //build/config/android/jni.gni:14

    Use hashed symbol names to reduce JNI symbol overhead.

use_icf

    Current value (from the default) = false

      From //build/config/compiler/BUILD.gn:203

    Set to true to use icf, Identical Code Folding.

   

    icf=all is broken in older golds, see

    https://sourceware.org/bugzilla/show_bug.cgi?id=17704

    chromeos binutils has been patched with the fix, so always use icf there.

    The bug only affects x86 and x64, so we can still use ICF when targeting

    other architectures.

   

    lld doesn't have the bug.

use_jacoco_coverage

    Current value (from the default) = false

      From //build/config/coverage/coverage.gni:27

    Enables JaCoCo Java code coverage.

use_java_goma

    Current value (from the default) = false

      From //build/toolchain/goma.gni:26

    TODO(crbug.com/726475): true if use_goma = true in the future.

use_javascript_coverage

    Current value (from the default) = false

      From //build/config/coverage/coverage.gni:39

    Enables TypeScript/JavaScript code coverage.

use_libfuzzer

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:69

    Compile for fuzzing with LLVM LibFuzzer.

    See http://www.chromium.org/developers/testing/libfuzzer

use_libinput

    Current value (from the default) = false

      From //build/config/chromeos/args.gni:37

    Determines if we're willing to link against libinput

use_libjpeg_turbo

    Current value (from the default) = true

      From //third_party/libjpeg.gni:11

    Uses libjpeg_turbo as the jpeg implementation. Has no effect if

    use_system_libjpeg is set.

use_lld

    Current value (from the default) = true

      From //build/config/compiler/compiler.gni:38

    Set to true to use lld, the LLVM linker.

    In late bring-up on macOS (see docs/mac_lld.md).

    Tentatively used on iOS.

    The default linker everywhere else.

use_locally_built_instrumented_libraries

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:44

    Use dynamic libraries instrumented by one of the sanitizers instead of the

    standard system libraries. Set this flag to build the libraries from source.

use_ml_inliner

    Current value (from the default) = true

      From //build/config/compiler/compiler.gni:141

    Set to true to enable using the ML inliner in LLVM. This currently only

    enables the ML inliner when targeting Android.

    Currently the ML inliner is only supported on linux hosts

use_order_profiling

    Current value (from the default) = false

      From //build/config/android/abi.gni:16

    Adds intrumentation to each function. Writes a file with the order that

    functions are called at startup.

use_ozone

    Current value (from the default) = false

      From //build/config/ozone.gni:12

    Indicates if Ozone is enabled. Ozone is a low-level library layer for Linux

    that does not require X11.

use_partition_alloc

    Current value (from the default) = true

      From //base/allocator/partition_allocator/partition_alloc.gni:51

    Whether PartitionAlloc should be available for use or not.

    true makes PartitionAlloc linked to the executable or shared library and

    makes it available for use. It doesn't mean that the default allocator

    is PartitionAlloc, which is governed by |use_partition_alloc_as_malloc|.

   

    N.B. generally, embedders should look at this GN arg and at the

    corresponding buildflag to determine whether to interact with PA

    source at all (pulling the component in via GN, including headers,

    etc.). There is nothing stopping a lazy embedder from ignoring this

    and unconditionally using PA, but such a setup is inadvisable.

   

    In Chromium, this is set true, except:

   

    1.  On Cronet bots, because Cronet doesn't use PartitionAlloc at all,

        and doesn't wish to incur the library size increase (crbug.com/674570).

    2.  On NaCl (through this declaration), where PartitionAlloc doesn't

        build at all.

use_partition_alloc_as_malloc

    Current value (from the default) = false

      From //base/allocator/partition_allocator/partition_alloc.gni:67

use_perfetto_client_library

    Current value (from the default) = false

      From //build_overrides/build.gni:53

use_profi

    Current value (from the default) = false

      From //build/config/compiler/BUILD.gn:175

    Enable Profi algorithm. Profi can infer block and edge counts.

    https://clang.llvm.org/docs/UsersManual.html#using-sampling-profilers

    TODO(crbug.com/1375958i:) Possibly enable this for Android too.

use_relative_vtables_abi

    Current value (from the default) = true

      From //build/config/compiler/compiler.gni:155

    Use offsets rather than pointers in vtables in order to reduce the number of

    relocations. This is safe to enable only when all C++ code is built with the

    flag set to the same value.

use_remoteexec

    Current value (from the default) = false

      From //build/toolchain/rbe.gni:14

    Set to true to enable remote compilation using reclient.

use_remoteexec_links

    Current value (from the default) = false

      From //build/toolchain/rbe.gni:17

    Set to true to enable remote linking using reclient.

use_rts

    Current value (from the default) = false

      From //build/config/rts.gni:4

    For more info about RTS, please see

    //docs/testing/regression-test-selection.md

use_rtti

    Current value (from the default) = false

      From //build/config/compiler/BUILD.gn:80

    Build with C++ RTTI enabled. Chromium builds without RTTI by default,

    but some sanitizers are known to require it, like CFI diagnostics

    and UBsan variants.

use_runtime_vlog

    Current value (from the default) = true

      From //build/config/logging.gni:31

    Use runtime vlog everywhere except for ash-chrome.

    When `use_runtime_vlog` is true,

      command line switch `--vmodule=xxx` or `--v=x` could be used to

      control vlog level at runtime.

    when `use_runtime_volog` is false,

      verbose log level is controlled by `ENABLE_VLOG_LEVEL` macro. VLOG(n)

      is kept and generate output if `n` is less than or equal to the vlog

      level defined by the macro.

      Command line switch `--vmodule=xxx`, or `--v=x` would have no effect.

   

    Runtime vlog is used everywhere except on ash-chrome.

    Ash-chrome has a few vmodule patterns that need to be used indefinitely

    to investigate problems from logs in feedback reports. These vmodule

    patterns are using too much cpu cycles (see http://crbug/489441). Turning

    off runtime vlog and using build time vlog would avoid paying that cpu tax

    and have a nice side effect of a smaller production binary.

use_sanitizer_configs_without_instrumentation

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:106

    When enabled, only relevant sanitizer defines are set, but compilation

    happens with no extra flags. This is useful when in component build

    enabling sanitizers only in some of the components.

use_sanitizer_coverage

    Current value (from the default) = false

      From //build/config/sanitizers/sanitizers.gni:185

use_stable_package_name_for_trichrome

    Current value (from the default) = false

      From //build/config/chrome_build.gni:32

    By default, Trichrome channels are compiled using separate package names.

    Set this to 'true' to compile Trichrome channels using the Stable channel's

    package name. This currently only affects builds with `android_channel =

    "beta"`.

use_sysroot

    Current value (from the default) = true

      From //build/config/sysroot.gni:23

use_system_freetype

    Current value (from the default) = false

      From //build/config/freetype/freetype.gni:13

    Blink needs a recent and properly build-configured FreeType version to

    support OpenType variations, color emoji and avoid security bugs. By default

    we ship and link such a version as part of Chrome. For distributions that

    prefer to keep linking to the version the system, FreeType must be newer

    than version 2.7.1 and have color bitmap support compiled in. WARNING:

    System FreeType configurations other than as described WILL INTRODUCE TEXT

    RENDERING AND SECURITY REGRESSIONS.

use_system_harfbuzz

    Current value (from the default) = false

      From //third_party/harfbuzz-ng/harfbuzz.gni:11

    Blink uses a cutting-edge version of Harfbuzz; most Linux distros do not

    contain a new enough version of the code to work correctly. However,

    ChromeOS chroots (i.e, real ChromeOS builds for devices) do contain a

    new enough version of the library, and so this variable exists so that

    ChromeOS can build against the system lib and keep binary sizes smaller.

use_system_libjpeg

    Current value (from the default) = false

      From //third_party/libjpeg.gni:7

    Uses system libjpeg. If true, overrides use_libjpeg_turbo.

use_text_section_splitting

    Current value (from the default) = false

      From //build/config/compiler/BUILD.gn:151

    This argument is to control whether enabling text section splitting in the

    final binary. When enabled, the separated text sections with prefix

    '.text.hot', '.text.unlikely', '.text.startup' and '.text.exit' will not be

    merged to '.text' section. This allows us to identify the hot code section

    ('.text.hot') in the binary which may be mlocked or mapped to huge page to

    reduce TLB misses which gives performance improvement on cpu usage.

    The gold linker by default has text section splitting enabled.

use_thin_lto

    Current value (from the default) = false

      From //build/config/compiler/compiler.gni:93

use_udev

    Current value (from the default) = false

      From //build/config/features.gni:34

    libudev usage. This currently only affects the content layer.

using_mismatched_sample_profile

    Current value (from the default) = true

      From //build/config/compiler/compiler.gni:107

    Whether we're using a sample profile collected on an architecture different

    than the one we're compiling for.

   

    It's currently not possible to collect AFDO profiles on anything but

    x86{,_64}.

v8_current_cpu

    Current value (from the default) = "arm64"

      From //build/config/v8_target_cpu.gni:63

    This argument is declared here so that it can be overridden in toolchains.

    It should never be explicitly set by the user.

v8_target_cpu

    Current value (from the default) = ""

      From //build/config/v8_target_cpu.gni:33

    This arg is used when we want to tell the JIT-generating v8 code

    that we want to have it generate for an architecture that is different

    than the architecture that v8 will actually run on; we then run the

    code under an emulator. For example, we might run v8 on x86, but

    generate arm code and run that under emulation.

   

    This arg is defined here rather than in the v8 project because we want

    some of the common architecture-specific args (like arm_float_abi or

    mips_arch_variant) to be set to their defaults either if the current_cpu

    applies *or* if the v8_current_cpu applies.

   

    As described below, you can also specify the v8_target_cpu to use

    indirectly by specifying a `custom_toolchain` that contains v8_$cpu in the

    name after the normal toolchain.

   

    For example, `gn gen --args="custom_toolchain=...:clang_x64_v8_arm64"`

    is equivalent to setting --args=`v8_target_cpu="arm64"`. Setting

    `custom_toolchain` is more verbose but makes the toolchain that is

    (effectively) being used explicit.

   

    v8_target_cpu can only be used to target one architecture in a build,

    so if you wish to build multiple copies of v8 that are targeting

    different architectures, you will need to do something more

    complicated involving multiple toolchains along the lines of

    custom_toolchain, above.

zlib_symbols_visible

    Current value (from the default) = false

      From //third_party/zlib/BUILD.gn:10

    Expose zlib's symbols, used by Node.js to provide zlib APIs for its native

    modules.

你可能感兴趣的:(webrtc-android,webrtc,android,rust)