1 # This file is used by the GN meta build system to find the root of the source
2 # tree and to set startup options. For documentation on the values set in this
3 # file, run "gn help dotfile" at the command line.
5 import("//build/dotfile_settings.gni")
7 # The location of the build configuration file.
8 buildconfig = "//tizen_src/build/config/BUILDCONFIG.gn"
10 # The secondary source root is a parallel directory tree where
11 # GN build files are placed when they can not be placed directly
12 # in the source tree, e.g. for third party source trees.
13 secondary_source = "//build/secondary/"
15 # These arguments override the default values for items in a declare_args
16 # block. "gn args" in turn can override these.
18 # In general the value for a build arg in the declare_args block should be the
19 # default. In some cases, a DEPS-ed in project will want different defaults for
20 # being built as part of Chrome vs. being built standalone. In this case, the
21 # Chrome defaults should go here. There should be no overrides here for
22 # values declared in the main Chrome repository.
24 # Important note for defining defaults: This file is executed before the
25 # BUILDCONFIG.gn file. That file sets up the global variables like "is_ios".
26 # This means that the default_args can not depend on the platform,
27 # architecture, or other build parameters. If you really need that, the other
28 # repo should define a flag that toggles on a behavior that implements the
29 # additional logic required by Chrome to set the variables.
31 # TODO(brettw) bug 684096: Chrome on iOS does not build v8, so "gn gen" prints
32 # a warning that "Build argument has no effect". When adding a v8 variable, it
33 # also needs to be defined to src/ios/BUILD.gn (respectively removed from both
34 # location when it is removed).
36 v8_extra_library_files = [
37 # Dependencies used by the extra libraries. Putting them here causes them
38 # to be executed first during snapshot creation.
39 "//third_party/blink/renderer/core/streams/CommonOperations.js",
40 "//third_party/blink/renderer/core/streams/CommonStrings.js",
41 "//third_party/blink/renderer/core/streams/SimpleQueue.js",
44 "//third_party/blink/renderer/core/streams/ByteLengthQueuingStrategy.js",
45 "//third_party/blink/renderer/core/streams/CountQueuingStrategy.js",
46 "//third_party/blink/renderer/core/streams/ReadableStream.js",
47 "//third_party/blink/renderer/core/streams/WritableStream.js",
49 v8_experimental_extra_library_files = []
50 v8_enable_gdbjit = false
51 v8_imminent_deprecation_warnings = false
53 # TODO(jochen): Remove this. http://crbug.com/v8/5830,
54 # http://crbug.com/728583.
55 v8_check_microtasks_scopes_consistency = false
58 # These are the targets to check headers for by default. The files in targets
59 # matching these patterns (see "gn help label_pattern" for format) will have
60 # their includes checked for proper dependencies when you run either
61 # "gn check" or "gn gen --check".
63 #"//apps/*", # Medium-hard.
70 #"//chrome/*", # Epic number of errors.
72 "//chrome/app_shim/*",
73 "//chrome/browser/chromeos/*",
74 "//chrome/browser/extensions/*",
75 "//chrome/browser/ui/*",
77 "//chrome/installer/*",
79 "//chrome/third_party/mozilla_security_manager/*",
94 #"//extensions/*", # Lots of errors.
95 "//extensions:extensions_unittests",
96 "//extensions/browser:browser_tests",
97 "//extensions/browser:unit_tests",
98 "//extensions/common:unit_tests",
99 "//extensions/renderer:unit_tests",
100 "//extensions/shell:browser_tests",
101 "//extensions/shell:unit_tests",
102 "//extensions/utility:unit_tests",
118 #"//native_client/*",
121 #"//pdf/*", # Medium-hard.
122 #"//ppapi/*", # Lots of errors.
123 "//ppapi/examples/*",
126 #"//remoting/*", # Medium-hard.
129 #"//sandbox/*", # Medium-hard.
136 #"//third_party/*", # May not ever want this.
137 "//third_party/breakpad/*",
138 "//third_party/brotli/*",
139 "//third_party/hunspell/*",
140 "//third_party/leveldatabase/*",
141 "//third_party/libaddressinput/*",
142 "//third_party/libphonenumber/*",
143 "//third_party/libwebp/*",
144 "//third_party/snappy/*",
145 "//third_party/WebKit/*",
154 # These are the list of GN files that run exec_script. This whitelist exists
155 # to force additional review for new uses of exec_script, which is strongly
160 # Some of these entries are for legacy gypi_to_gn calls. We should not be
161 # adding new calls to this script in the build (see //build/gypi_to_gn.py for
162 # detailed advice). The only time you should be editing this list for
163 # gypi_to_gn purposes is when moving an existing call to a different place.
167 # You should almost never need to add new exec_script calls. exec_script is
168 # slow, especially on Windows, and can cause confusing effects. Although
169 # individually each call isn't slow or necessarily very confusing, at the scale
170 # of our repo things get out of hand quickly. By strongly pushing back on all
171 # additions, we keep the build fast and clean. If you think you need to add a
172 # new call, please consider:
174 # - Do not use a script to check for the existance of a file or directory to
175 # enable a different mode. Instead, use GN build args to enable or disable
176 # functionality and set options. An example is checking for a file in the
177 # src-internal repo to see if the corresponding src-internal feature should
178 # be enabled. There are several things that can go wrong with this:
180 # - It's mysterious what causes some things to happen. Although in many cases
181 # such behavior can be conveniently automatic, GN optimizes for explicit
182 # and obvious behavior so people can more easily diagnose problems.
184 # - The user can't enable a mode for one build and not another. With GN build
185 # args, the user can choose the exact configuration of multiple builds
186 # using one checkout. But implicitly basing flags on the state of the
187 # checkout, this functionality is broken.
189 # - It's easy to get stale files. If for example the user edits the gclient
190 # to stop checking out src-internal (or any other optional thing), it's
191 # easy to end up with stale files still mysteriously triggering build
192 # conditions that are no longer appropriate (yes, this happens in real
195 # - Do not use a script to iterate files in a directory (glob):
197 # - This has the same "stale file" problem as the above discussion. Various
198 # operations can leave untracked files in the source tree which can cause
199 # surprising effects.
201 # - It becomes impossible to use "git grep" to find where a certain file is
202 # referenced. This operation is very common and people really do get
203 # confused when things aren't listed.
205 # - It's easy to screw up. One common case is a build-time script that packs
206 # up a directory. The author notices that the script isn't re-run when the
207 # directory is updated, so adds a glob so all the files are listed as
208 # inputs. This seems to work great... until a file is deleted. When a
209 # file is deleted, all the inputs the glob lists will still be up to date
210 # and no command-lines will have been changed. The action will not be
211 # re-run and the build will be broken. It is possible to get this correct
212 # using glob, and it's possible to mess it up without glob, but globs make
213 # this situation much easier to create. if the build always lists the
214 # files and passes them to a script, it will always be correct.
216 exec_script_whitelist =
217 build_dotfile_settings.exec_script_whitelist + [
218 # Whitelist entries for //build should go into
219 # //build/dotfile_settings.gni instead, so that they can be shared
220 # with other repos. The entries in this list should be only for files
221 # in the Chromium repo outside of //build.
222 "//build_overrides/build.gni",
224 # TODO(dgn): Layer violation but breaks the build otherwise, see
225 # https://crbug.com/474506.
226 "//clank/java/BUILD.gn",
227 "//clank/native/BUILD.gn",
230 "//cowboy/make_sbrowser_apk.gni",
231 "//remoting/host/installer/linux/BUILD.gn",
232 "//remoting/remoting_version.gni",
233 "//remoting/host/installer/win/generate_clsids.gni",
235 "//terrace/BUILD.gn",
236 "//terrace/make_terrace_target.gni",
237 # TODO(dpranke): Get these from the appropriate repos instead.
238 "//third_party/angle/BUILD.gn",
239 "//third_party/angle/src/tests/BUILD.gn",
240 "//third_party/angle/src/vulkan_support/BUILD.gn",
241 "//third_party/catapult/tracing/BUILD.gn",
242 "//third_party/google_input_tools/inputview.gni",
243 "//third_party/skia/gn/shared_sources.gni",
245 "//tizen_src/ewk/efl_integration/BUILD.gn",
247 # CLD2 should be removed soon, delete this when we do.
248 "//third_party/cld_2/BUILD.gn",
249 "//tools/grit/grit_rule.gni",
252 "//google_apis/BUILD.gn",
253 "//printing/BUILD.gn",