1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
|
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# This file contains UI-related build flags. It should theoretically be in the
# src/ui directory and only things that depend on the ui module should get the
# definitions.
#
# However, today we have many "bad" dependencies on some of these flags from,
# e.g. base, so they need to be global.
#
# See also build/config/ui.gni
if (is_android) {
import("//build/config/android/config.gni")
}
declare_args() {
# Multicast DNS.
enable_mdns = is_win || is_linux
enable_plugins = !is_android && !is_ios
# Enables Native Client support.
# TODO(GYP): Get NaCl linking on other platforms.
# Also, see if we can always get rid of enable_nacl_untrusted and
# enable_pnacl and always build them if enable_nacl is true.
# The "is_nacl" part of the condition is needed to ensure that
# the untrusted code is built properly; arguably it should be
# guarded by "is_nacl" directly rather than enable_nacl_untrusted, but
# this will go away when Mac and Win are working and we can just use
# the commented out logic.
# Eventually we want this to be:
# enable_nacl = !is_ios && !is_android
enable_nacl = (is_linux && !is_chromeos && !is_component_build &&
current_cpu == "x64") || is_nacl
enable_nacl_untrusted = enable_nacl
enable_pnacl = enable_nacl_untrusted
# If debug_devtools is set to true, JavaScript files for DevTools are stored
# as is and loaded from disk. Otherwise, a concatenated file is stored in
# resources.pak. It is still possible to load JS files from disk by passing
# --debug-devtools cmdline switch.
debug_devtools = false
# Enables WebRTC.
# TODO(GYP) make mac and android work.
enable_webrtc = !is_ios && !is_mac && !is_android
# Enables the Media Router.
enable_media_router = !is_ios && !is_android
# Enables proprietary codecs and demuxers; e.g. H264, MOV, AAC, and MP3.
proprietary_codecs = false
enable_configuration_policy = true
# Enables support for background apps.
enable_background = !is_ios && !is_android
enable_captive_portal_detection = !is_android && !is_ios
# Enables use of the session service, which is enabled by default.
# Android stores them separately on the Java side.
enable_session_service = !is_android && !is_ios
enable_plugin_installation = is_win || is_mac
enable_app_list = !is_ios && !is_android
enable_supervised_users = !is_ios
enable_autofill_dialog = !is_ios
enable_google_now = !is_ios && !is_android
enable_one_click_signin = is_win || is_mac || (is_linux && !is_chromeos)
enable_remoting = !is_ios && !is_android
# Enable hole punching for the protected video.
enable_video_hole = is_android
# Enables browser side Content Decryption Modules. Required for embedders
# (e.g. Android and ChromeCast) that use a browser side CDM.
enable_browser_cdms = is_android
}
# Additional dependent variables -----------------------------------------------
# Set the version of CLD.
# 0: Don't specify the version. This option is for the Finch testing.
# 1: Use only CLD1.
# 2: Use only CLD2.
if (is_android) {
cld_version = 1
} else {
cld_version = 2
}
# libudev usage. This currently only affects the content layer.
use_udev = is_linux
# Enable the spell checker.
enable_spellcheck = !is_android
enable_pepper_cdms = enable_plugins && (is_linux || is_mac || is_win)
# Enable basic printing support and UI.
enable_basic_printing = !is_chromeos
# Enable printing with print preview. It does not imply
# enable_basic_printing. It's possible to build Chrome with preview only.
enable_print_preview = !is_android
# The seccomp-bpf sandbox is only supported on three architectures
# currently.
# Do not disable seccomp_bpf anywhere without talking to
# security@chromium.org!
use_seccomp_bpf = (is_linux || is_android) &&
(current_cpu == "x86" || current_cpu == "x64" ||
current_cpu == "arm" || current_cpu == "mipsel")
# Enable notifications everywhere except iOS.
enable_notifications = !is_ios
# TODO(brettw) this should be moved to net and only dependents get this define.
disable_ftp_support = is_ios
enable_web_speech = !is_android && !is_ios
use_dbus = is_linux
enable_extensions = !is_android && !is_ios
# Variable safe_browsing is used to control the build time configuration for
# safe browsing feature. Safe browsing can be compiled in 3 different levels: 0
# disables it, 1 enables it fully, and 2 enables only UI and reporting features
# without enabling phishing and malware detection. This is useful to integrate
# a third party phishing/malware detection to existing safe browsing logic.
if (is_android) {
safe_browsing_mode = 2
} else if (is_ios) {
safe_browsing_mode = 0
} else {
safe_browsing_mode = 1
}
enable_task_manager = !is_ios && !is_android
use_cups = is_desktop_linux || is_mac
enable_themes = !is_android && !is_ios
# TODO(scottmg) remove this when we've fixed printing.
win_pdf_metafile_for_printing = true
# Whether we are using the rlz library or not. Platforms like Android send
# rlz codes for searches but do not use the library.
enable_rlz = is_chrome_branded && (is_win || is_mac || is_ios || is_chromeos)
enable_settings_app = enable_app_list && !is_chromeos
enable_service_discovery = enable_mdns || is_mac
enable_wifi_bootstrapping = is_win || is_mac
# Image loader extension is enabled on ChromeOS only.
enable_image_loader_extension = is_chromeos
# Chrome OS: whether to also build the upcoming version of
# ChromeVox, which can then be enabled via a command-line switch.
enable_chromevox_next = false
# Use brlapi from brltty for braille display support.
use_brlapi = is_chromeos
enable_media_router = !is_ios && !is_android
# Option controlling the use of GConf (the classic GNOME configuration
# system).
# TODO(GYP) also require !embedded to enable.
use_gconf = is_linux && !is_chromeos
# Hangout services is an extension that adds extra features to Hangouts.
# For official GYP builds, this flag is set, it will likely need to be
# parameterized in the future for a similar use.
enable_hangout_services_extension = false
# Whether to back up data before sync.
enable_pre_sync_backup = is_win || is_mac || (is_linux && !is_chromeos)
|