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=
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
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
and one of
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.