• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Note: The buildbots evaluate this file with CWD set to the parent
2# directory and assume that the root of the checkout is in ./v8/, so
3# all paths in here must match this assumption.
4
5use_relative_paths = True
6
7gclient_gn_args_file = 'build/config/gclient_args.gni'
8gclient_gn_args = [
9]
10
11vars = {
12  # Fetches only the SDK boot images which match at least one of the whitelist
13  # entries in a comma-separated list.
14  #
15  # Only the X64 and ARM64 QEMU images are downloaded by default. Developers
16  # that need to boot on other target architectures or devices can opt to
17  # download more boot images. Example of images include:
18  #
19  # Emulation:
20  #   qemu.x64, qemu.arm64
21  # Hardware:
22  #   generic.x64, generic.arm64
23  #
24  # Wildcards are supported (e.g. "qemu.*").
25  'checkout_fuchsia_boot_images': "qemu.x64,qemu.arm64",
26
27  'checkout_instrumented_libraries': False,
28  'checkout_ittapi': False,
29  # Fetch clang-tidy into the same bin/ directory as our clang binary.
30  'checkout_clang_tidy': False,
31  'chromium_url': 'https://chromium.googlesource.com',
32  'android_url': 'https://android.googlesource.com',
33  'download_gcmole': False,
34  'download_jsfunfuzz': False,
35  'download_prebuilt_bazel': False,
36  'check_v8_header_includes': False,
37  'checkout_reclient': False,
38
39  # reclient CIPD package version
40  'reclient_version': 're_client_version:0.40.0.40ff5a5',
41
42  # GN CIPD package version.
43  'gn_version': 'git_revision:ae110f8b525009255ba1f9ae96982176d3bfad3d',
44
45  # luci-go CIPD package version.
46  'luci_go': 'git_revision:6da0608e4fa8a3c6d1fa4f855485c0038b05bf72',
47
48  # Three lines of non-changing comments so that
49  # the commit queue can handle CLs rolling android_sdk_build-tools_version
50  # and whatever else without interference from each other.
51  'android_sdk_build-tools_version': 'tRoD45SCi7UleQqSV7MrMQO1_e5P8ysphkCcj6z_cCQC',
52  # Three lines of non-changing comments so that
53  # the commit queue can handle CLs rolling android_sdk_emulator_version
54  # and whatever else without interference from each other.
55  'android_sdk_emulator_version': 'gMHhUuoQRKfxr-MBn3fNNXZtkAVXtOwMwT7kfx8jkIgC',
56  # Three lines of non-changing comments so that
57  # the commit queue can handle CLs rolling android_sdk_extras_version
58  # and whatever else without interference from each other.
59  'android_sdk_extras_version': 'ppQ4TnqDvBHQ3lXx5KPq97egzF5X2FFyOrVHkGmiTMQC',
60  # Three lines of non-changing comments so that
61  # the commit queue can handle CLs rolling android_sdk_patcher_version
62  # and whatever else without interference from each other.
63  'android_sdk_patcher_version': 'I6FNMhrXlpB-E1lOhMlvld7xt9lBVNOO83KIluXDyA0C',
64  # Three lines of non-changing comments so that
65  # the commit queue can handle CLs rolling android_sdk_platform-tools_version
66  # and whatever else without interference from each other.
67  'android_sdk_platform-tools_version': 'g7n_-r6yJd_SGRklujGB1wEt8iyr77FZTUJVS9w6O34C',
68  # Three lines of non-changing comments so that
69  # the commit queue can handle CLs rolling android_sdk_platforms_version
70  # and whatever else without interference from each other.
71  'android_sdk_platforms_version': 'lL3IGexKjYlwjO_1Ga-xwxgwbE_w-lmi2Zi1uOlWUIAC',
72  # Three lines of non-changing comments so that
73  # the commit queue can handle CLs rolling android_sdk_sources_version
74  # and whatever else without interference from each other.
75  'android_sdk_sources_version': '7EcXjyZWkTu3sCA8d8eRXg_aCBCYt8ihXgxp29VXLs8C',
76  # Three lines of non-changing comments so that
77  # the commit queue can handle CLs rolling android_sdk_tools-lint_version
78  # and whatever else without interference from each other.
79  'android_sdk_cmdline-tools_version': 'PGPmqJtSIQ84If155ba7iTU846h5WJ-bL5d_OoUWEWYC',
80}
81
82deps = {
83  'base/trace_event/common':
84    Var('chromium_url') + '/chromium/src/base/trace_event/common.git' + '@' + 'd115b033c4e53666b535cbd1985ffe60badad082',
85  'build':
86    Var('chromium_url') + '/chromium/src/build.git' + '@' + 'b37c340767cf9e7777d4ca5a588c34c5744df9b2',
87  'buildtools':
88    Var('chromium_url') + '/chromium/src/buildtools.git' + '@' + 'c2e4795660817c2776dbabd778b92ed58c074032',
89  'buildtools/clang_format/script':
90    Var('chromium_url') + '/external/github.com/llvm/llvm-project/clang/tools/clang-format.git' + '@' + 'e435ad79c17b1888b34df88d6a30a094936e3836',
91  'buildtools/linux64': {
92    'packages': [
93      {
94        'package': 'gn/gn/linux-amd64',
95        'version': Var('gn_version'),
96      }
97    ],
98    'dep_type': 'cipd',
99    'condition': 'host_os == "linux"',
100  },
101  'buildtools/mac': {
102    'packages': [
103      {
104        'package': 'gn/gn/mac-${{arch}}',
105        'version': Var('gn_version'),
106      }
107    ],
108    'dep_type': 'cipd',
109    'condition': 'host_os == "mac"',
110  },
111  'buildtools/third_party/libc++/trunk':
112    Var('chromium_url') + '/external/github.com/llvm/llvm-project/libcxx.git' + '@' + '79a2e924d96e2fc1e4b937c42efd08898fa472d7',
113  'buildtools/third_party/libc++abi/trunk':
114    Var('chromium_url') + '/external/github.com/llvm/llvm-project/libcxxabi.git' + '@' + 'e025ba5dc85202540099d7cd8e72eae2d4ee9e33',
115  'buildtools/third_party/libunwind/trunk':
116    Var('chromium_url') + '/external/github.com/llvm/llvm-project/libunwind.git' + '@' + 'c39fea88739be63a2d5590a938ce19d762b915fc',
117  'buildtools/win': {
118    'packages': [
119      {
120        'package': 'gn/gn/windows-amd64',
121        'version': Var('gn_version'),
122      }
123    ],
124    'dep_type': 'cipd',
125    'condition': 'host_os == "win"',
126  },
127  'buildtools/reclient': {
128    'packages': [
129      {
130        'package': 'infra/rbe/client/${{platform}}',
131        'version': Var('reclient_version'),
132      }
133    ],
134    'dep_type': 'cipd',
135    'condition': '(host_os == "linux" or host_os == "win") and checkout_reclient',
136  },
137  'test/benchmarks/data':
138    Var('chromium_url') + '/v8/deps/third_party/benchmarks.git' + '@' + '05d7188267b4560491ff9155c5ee13e207ecd65f',
139  'test/mozilla/data':
140    Var('chromium_url') + '/v8/deps/third_party/mozilla-tests.git' + '@' + 'f6c578a10ea707b1a8ab0b88943fe5115ce2b9be',
141  'test/test262/data':
142    Var('chromium_url') + '/external/github.com/tc39/test262.git' + '@' + 'd7c0a2076c2b0c1531aef7069d4abe70eec44ee3',
143  'third_party/aemu-linux-x64': {
144      'packages': [
145          {
146              'package': 'fuchsia/third_party/aemu/linux-amd64',
147              'version': 'vRCm89BzABss-_H8vC-tLjcSf6uusZA9IBSSYtdw4_kC'
148          },
149      ],
150      'condition': 'host_os == "linux" and checkout_fuchsia',
151      'dep_type': 'cipd',
152  },
153  'third_party/aemu-mac-x64': {
154      'packages': [
155          {
156              'package': 'fuchsia/third_party/aemu/mac-amd64',
157              'version': 'T9bWxf8aUC5TwCFgPxpuW29Mfy-7Z9xCfXB9QO8MfU0C'
158          },
159      ],
160      'condition': 'host_os == "mac" and checkout_fuchsia',
161      'dep_type': 'cipd',
162  },
163  'third_party/android_ndk': {
164    'url': Var('chromium_url') + '/android_ndk.git' + '@' + '8388a2be5421311dc75c5f937aae13d821a27f3d',
165    'condition': 'checkout_android',
166  },
167  'third_party/android_platform': {
168    'url': Var('chromium_url') + '/chromium/src/third_party/android_platform.git' + '@' + '2760db43ffc8b074cb7960c90b5254f74a5c299a',
169    'condition': 'checkout_android',
170  },
171  'third_party/android_sdk/public': {
172      'packages': [
173          {
174              'package': 'chromium/third_party/android_sdk/public/build-tools/31.0.0',
175              'version': Var('android_sdk_build-tools_version'),
176          },
177          {
178              'package': 'chromium/third_party/android_sdk/public/emulator',
179              'version': Var('android_sdk_emulator_version'),
180          },
181          {
182              'package': 'chromium/third_party/android_sdk/public/extras',
183              'version': Var('android_sdk_extras_version'),
184          },
185          {
186              'package': 'chromium/third_party/android_sdk/public/patcher',
187              'version': Var('android_sdk_patcher_version'),
188          },
189          {
190              'package': 'chromium/third_party/android_sdk/public/platform-tools',
191              'version': Var('android_sdk_platform-tools_version'),
192          },
193          {
194              'package': 'chromium/third_party/android_sdk/public/platforms/android-31',
195              'version': Var('android_sdk_platforms_version'),
196          },
197          {
198              'package': 'chromium/third_party/android_sdk/public/sources/android-30',
199              'version': Var('android_sdk_sources_version'),
200          },
201          {
202              'package': 'chromium/third_party/android_sdk/public/cmdline-tools',
203              'version': Var('android_sdk_cmdline-tools_version'),
204          },
205      ],
206      'condition': 'checkout_android',
207      'dep_type': 'cipd',
208  },
209  'third_party/catapult': {
210    'url': Var('chromium_url') + '/catapult.git' + '@' + '3a1ae18f882d024686144edbec3050aae055f146',
211    'condition': 'checkout_android',
212  },
213  'third_party/colorama/src': {
214    'url': Var('chromium_url') + '/external/colorama.git' + '@' + '799604a1041e9b3bc5d2789ecbd7e8db2e18e6b8',
215    'condition': 'checkout_android',
216  },
217  'third_party/depot_tools':
218    Var('chromium_url') + '/chromium/tools/depot_tools.git' + '@' + '3b97fa826eee4bd1978c4c049038b1e4f201e8f2',
219  'third_party/fuchsia-sdk': {
220    'url': Var('chromium_url') + '/chromium/src/third_party/fuchsia-sdk.git' + '@' + '7c9c220d13ab367d49420144a257886ebfbce278',
221    'condition': 'checkout_fuchsia',
222  },
223  'third_party/google_benchmark/src': {
224    'url': Var('chromium_url') + '/external/github.com/google/benchmark.git' + '@' + 'dc901ff9090e2b931433790cc44afc3af3b09ab2',
225  },
226  'third_party/googletest/src':
227    Var('chromium_url') + '/external/github.com/google/googletest.git' + '@' + 'af29db7ec28d6df1c7f0f745186884091e602e07',
228  'third_party/icu':
229    Var('chromium_url') + '/chromium/deps/icu.git' + '@' + '1fd0dbea04448c3f73fe5cb7599f9472f0f107f1',
230  'third_party/instrumented_libraries':
231    Var('chromium_url') + '/chromium/src/third_party/instrumented_libraries.git' + '@' + 'e09c4b66b6e87116eb190651421f1a6e2f3b9c52',
232  'third_party/ittapi': {
233    # Force checkout ittapi libraries to pass v8 header includes check on
234    # bots that has check_v8_header_includes enabled.
235    'url': Var('chromium_url') + '/external/github.com/intel/ittapi' + '@' + 'a3911fff01a775023a06af8754f9ec1e5977dd97',
236    'condition': "checkout_ittapi or check_v8_header_includes",
237  },
238  'third_party/jinja2':
239    Var('chromium_url') + '/chromium/src/third_party/jinja2.git' + '@' + 'ee69aa00ee8536f61db6a451f3858745cf587de6',
240  'third_party/jsoncpp/source':
241    Var('chromium_url') + '/external/github.com/open-source-parsers/jsoncpp.git'+ '@' + '9059f5cad030ba11d37818847443a53918c327b1',
242  'third_party/logdog/logdog':
243    Var('chromium_url') + '/infra/luci/luci-py/client/libs/logdog' + '@' + '0b2078a90f7a638d576b3a7c407d136f2fb62399',
244  'third_party/markupsafe':
245    Var('chromium_url') + '/chromium/src/third_party/markupsafe.git' + '@' + '1b882ef6372b58bfd55a3285f37ed801be9137cd',
246  'third_party/perfetto':
247    Var('android_url') + '/platform/external/perfetto.git' + '@' + 'aa4385bc5997ecad4c633885e1b331b1115012fb',
248  'third_party/protobuf':
249    Var('chromium_url') + '/external/github.com/google/protobuf'+ '@' + '6a59a2ad1f61d9696092f79b6d74368b4d7970a3',
250  'third_party/qemu-linux-x64': {
251      'packages': [
252          {
253              'package': 'fuchsia/qemu/linux-amd64',
254              'version': '9cc486c5b18a0be515c39a280ca9a309c54cf994'
255          },
256      ],
257      'condition': 'host_os == "linux" and checkout_fuchsia',
258      'dep_type': 'cipd',
259  },
260  'third_party/qemu-mac-x64': {
261      'packages': [
262          {
263              'package': 'fuchsia/qemu/mac-amd64',
264              'version': '2d3358ae9a569b2d4a474f498b32b202a152134f'
265          },
266      ],
267      'condition': 'host_os == "mac" and checkout_fuchsia',
268      'dep_type': 'cipd',
269  },
270  'third_party/requests': {
271      'url': Var('chromium_url') + '/external/github.com/kennethreitz/requests.git' + '@' + '2c2138e811487b13020eb331482fb991fd399d4e',
272      'condition': 'checkout_android',
273  },
274  'third_party/zlib':
275    Var('chromium_url') + '/chromium/src/third_party/zlib.git'+ '@' + 'a6d209ab932df0f1c9d5b7dc67cfa74e8a3272c0',
276  'tools/clang':
277    Var('chromium_url') + '/chromium/src/tools/clang.git' + '@' + 'b5e2f7c16bbf3aefc9354e8fbad3de0a543f2193',
278  'tools/luci-go': {
279      'packages': [
280        {
281          'package': 'infra/tools/luci/isolate/${{platform}}',
282          'version': Var('luci_go'),
283        },
284        {
285          'package': 'infra/tools/luci/swarming/${{platform}}',
286          'version': Var('luci_go'),
287        },
288      ],
289      'condition': 'host_cpu != "s390" and host_os != "aix"',
290      'dep_type': 'cipd',
291  },
292}
293
294include_rules = [
295  # Everybody can use some things.
296  '+include',
297  '+unicode',
298  '+third_party/fdlibm',
299  '+third_party/ittapi/include',
300  # Abseil features are allow-listed. Please use your best judgement when adding
301  # to this set -- if in doubt, email v8-dev@. For general guidance, refer to
302  # the Chromium guidelines (though note that some requirements in V8 may be
303  # different to Chromium's):
304  # https://chromium.googlesource.com/chromium/src/+/main/styleguide/c++/c++11.md
305  '+absl/types/optional.h',
306  '+absl/types/variant.h',
307  '+absl/status',
308  # Some abseil features are explicitly banned.
309  '-absl/types/any.h', # Requires RTTI.
310  '-absl/types/flags', # Requires RTTI.
311]
312
313# checkdeps.py shouldn't check for includes in these directories:
314skip_child_includes = [
315  'build',
316  'third_party',
317]
318
319hooks = [
320  {
321    # Ensure that the DEPS'd "depot_tools" has its self-update capability
322    # disabled.
323    'name': 'disable_depot_tools_selfupdate',
324    'pattern': '.',
325    'action': [
326        'python3',
327        'third_party/depot_tools/update_depot_tools_toggle.py',
328        '--disable',
329    ],
330  },
331  {
332    # This clobbers when necessary (based on get_landmines.py). It must be the
333    # first hook so that other things that get/generate into the output
334    # directory will not subsequently be clobbered.
335    'name': 'landmines',
336    'pattern': '.',
337    'action': [
338        'python3',
339        'build/landmines.py',
340        '--landmine-scripts',
341        'tools/get_landmines.py',
342    ],
343  },
344  {
345    'name': 'bazel',
346    'pattern': '.',
347    'condition': 'download_prebuilt_bazel',
348    'action': [ 'python3',
349                'third_party/depot_tools/download_from_google_storage.py',
350                '--bucket', 'chromium-v8-prebuilt-bazel/linux',
351                '--no_resume',
352                '-s', 'tools/bazel/bazel.sha1',
353                '--platform=linux*',
354    ],
355  },
356  # Pull dsymutil binaries using checked-in hashes.
357  {
358    'name': 'dsymutil_mac_arm64',
359    'pattern': '.',
360    'condition': 'host_os == "mac" and host_cpu == "arm64"',
361    'action': [ 'python3',
362                'third_party/depot_tools/download_from_google_storage.py',
363                '--no_resume',
364                '--no_auth',
365                '--bucket', 'chromium-browser-clang',
366                '-s', 'tools/clang/dsymutil/bin/dsymutil.arm64.sha1',
367                '-o', 'tools/clang/dsymutil/bin/dsymutil',
368    ],
369  },
370  {
371    'name': 'dsymutil_mac_x64',
372    'pattern': '.',
373    'condition': 'host_os == "mac" and host_cpu == "x64"',
374    'action': [ 'python3',
375                'third_party/depot_tools/download_from_google_storage.py',
376                '--no_resume',
377                '--no_auth',
378                '--bucket', 'chromium-browser-clang',
379                '-s', 'tools/clang/dsymutil/bin/dsymutil.x64.sha1',
380                '-o', 'tools/clang/dsymutil/bin/dsymutil',
381    ],
382  },
383  # Pull clang-format binaries using checked-in hashes.
384  {
385    'name': 'clang_format_win',
386    'pattern': '.',
387    'condition': 'host_os == "win"',
388    'action': [ 'python3',
389                'third_party/depot_tools/download_from_google_storage.py',
390                '--no_resume',
391                '--no_auth',
392                '--bucket', 'chromium-clang-format',
393                '-s', 'buildtools/win/clang-format.exe.sha1',
394    ],
395  },
396  {
397    'name': 'clang_format_mac_x64',
398    'pattern': '.',
399    'condition': 'host_os == "mac" and host_cpu == "x64"',
400    'action': [ 'python3',
401                'third_party/depot_tools/download_from_google_storage.py',
402                '--no_resume',
403                '--no_auth',
404                '--bucket', 'chromium-clang-format',
405                '-s', 'buildtools/mac/clang-format.x64.sha1',
406                '-o', 'buildtools/mac/clang-format',
407    ],
408  },
409  {
410    'name': 'clang_format_mac_arm64',
411    'pattern': '.',
412    'condition': 'host_os == "mac" and host_cpu == "arm64"',
413    'action': [ 'python3',
414                'third_party/depot_tools/download_from_google_storage.py',
415                '--no_resume',
416                '--no_auth',
417                '--bucket', 'chromium-clang-format',
418                '-s', 'buildtools/mac/clang-format.arm64.sha1',
419                '-o', 'buildtools/mac/clang-format',
420    ],
421  },
422  {
423    'name': 'clang_format_linux',
424    'pattern': '.',
425    'condition': 'host_os == "linux"',
426    'action': [ 'python3',
427                'third_party/depot_tools/download_from_google_storage.py',
428                '--no_resume',
429                '--no_auth',
430                '--bucket', 'chromium-clang-format',
431                '-s', 'buildtools/linux64/clang-format.sha1',
432    ],
433  },
434  {
435    'name': 'gcmole',
436    'pattern': '.',
437    'condition': 'download_gcmole',
438    'action': [ 'python3',
439                'third_party/depot_tools/download_from_google_storage.py',
440                '--bucket', 'chrome-v8-gcmole',
441                '-u', '--no_resume',
442                '-s', 'tools/gcmole/gcmole-tools.tar.gz.sha1',
443                '--platform=linux*',
444    ],
445  },
446  {
447    'name': 'jsfunfuzz',
448    'pattern': '.',
449    'condition': 'download_jsfunfuzz',
450    'action': [ 'python3',
451                'third_party/depot_tools/download_from_google_storage.py',
452                '--bucket', 'chrome-v8-jsfunfuzz',
453                '-u', '--no_resume',
454                '-s', 'tools/jsfunfuzz/jsfunfuzz.tar.gz.sha1',
455                '--platform=linux*',
456    ],
457  },
458  {
459    'name': 'wasm_spec_tests',
460    'pattern': '.',
461    'action': [ 'python3',
462                'third_party/depot_tools/download_from_google_storage.py',
463                '--no_resume',
464                '--no_auth',
465                '-u',
466                '--bucket', 'v8-wasm-spec-tests',
467                '-s', 'test/wasm-spec-tests/tests.tar.gz.sha1',
468    ],
469  },
470  {
471    'name': 'wasm_js',
472    'pattern': '.',
473    'action': [ 'python3',
474                'third_party/depot_tools/download_from_google_storage.py',
475                '--no_resume',
476                '--no_auth',
477                '-u',
478                '--bucket', 'v8-wasm-spec-tests',
479                '-s', 'test/wasm-js/tests.tar.gz.sha1',
480    ],
481  },
482  {
483    'name': 'sysroot_arm',
484    'pattern': '.',
485    'condition': '(checkout_linux and checkout_arm)',
486    'action': ['python3', 'build/linux/sysroot_scripts/install-sysroot.py',
487               '--arch=arm'],
488  },
489  {
490    'name': 'sysroot_arm64',
491    'pattern': '.',
492    'condition': '(checkout_linux and checkout_arm64)',
493    'action': ['python3', 'build/linux/sysroot_scripts/install-sysroot.py',
494               '--arch=arm64'],
495  },
496  {
497    'name': 'sysroot_x86',
498    'pattern': '.',
499    'condition': '(checkout_linux and (checkout_x86 or checkout_x64))',
500    'action': ['python3', 'build/linux/sysroot_scripts/install-sysroot.py',
501               '--arch=x86'],
502  },
503  {
504    'name': 'sysroot_x64',
505    'pattern': '.',
506    'condition': 'checkout_linux and checkout_x64',
507    'action': ['python3', 'build/linux/sysroot_scripts/install-sysroot.py',
508               '--arch=x64'],
509  },
510  {
511    'name': 'msan_chained_origins',
512    'pattern': '.',
513    'condition': 'checkout_instrumented_libraries',
514    'action': [ 'python3',
515                'third_party/depot_tools/download_from_google_storage.py',
516                '--no_resume',
517                '--no_auth',
518                '--bucket', 'chromium-instrumented-libraries',
519                '-s', 'third_party/instrumented_libraries/binaries/msan-chained-origins.tgz.sha1',
520              ],
521  },
522  {
523    'name': 'msan_no_origins',
524    'pattern': '.',
525    'condition': 'checkout_instrumented_libraries',
526    'action': [ 'python3',
527                'third_party/depot_tools/download_from_google_storage.py',
528                '--no_resume',
529                '--no_auth',
530                '--bucket', 'chromium-instrumented-libraries',
531                '-s', 'third_party/instrumented_libraries/binaries/msan-no-origins.tgz.sha1',
532              ],
533  },
534  {
535    # Case-insensitivity for the Win SDK. Must run before win_toolchain below.
536    'name': 'ciopfs_linux',
537    'pattern': '.',
538    'condition': 'checkout_win and host_os == "linux"',
539    'action': [ 'python3',
540                'third_party/depot_tools/download_from_google_storage.py',
541                '--no_resume',
542                '--no_auth',
543                '--bucket', 'chromium-browser-clang/ciopfs',
544                '-s', 'build/ciopfs.sha1',
545    ]
546  },
547  {
548    # Update the Windows toolchain if necessary.
549    'name': 'win_toolchain',
550    'pattern': '.',
551    'condition': 'checkout_win',
552    'action': ['python3', 'build/vs_toolchain.py', 'update', '--force'],
553  },
554  {
555    # Update the Mac toolchain if necessary.
556    'name': 'mac_toolchain',
557    'pattern': '.',
558    'condition': 'checkout_mac',
559    'action': ['python3', 'build/mac_toolchain.py'],
560  },
561  {
562    # Note: On Win, this should run after win_toolchain, as it may use it.
563    'name': 'clang',
564    'pattern': '.',
565    # clang not supported on aix
566    'condition': 'host_os != "aix"',
567    'action': ['python3', 'tools/clang/scripts/update.py'],
568  },
569  {
570    'name': 'clang_tidy',
571    'pattern': '.',
572    'condition': 'checkout_clang_tidy',
573    'action': ['python3', 'tools/clang/scripts/update.py',
574               '--package=clang-tidy'],
575  },
576  {
577    # Update LASTCHANGE.
578    'name': 'lastchange',
579    'pattern': '.',
580    'action': ['python3', 'build/util/lastchange.py',
581               '-o', 'build/util/LASTCHANGE'],
582  },
583  {
584    'name': 'Download Fuchsia SDK',
585    'pattern': '.',
586    'condition': 'checkout_fuchsia',
587    'action': [
588      'python3',
589      'build/fuchsia/update_sdk.py',
590    ],
591  },
592  {
593    'name': 'Download Fuchsia system images',
594    'pattern': '.',
595    'condition': 'checkout_fuchsia',
596    'action': [
597      'python3',
598      'build/fuchsia/update_images.py',
599      '--boot-images={checkout_fuchsia_boot_images}',
600    ],
601  },
602  {
603    # Mac does not have llvm-objdump, download it for cross builds in Fuchsia.
604    'name': 'llvm-objdump',
605    'pattern': '.',
606    'condition': 'host_os == "mac" and checkout_fuchsia',
607    'action': ['python3', 'tools/clang/scripts/update.py',
608               '--package=objdump'],
609  },
610  # Download and initialize "vpython" VirtualEnv environment packages.
611  {
612    'name': 'vpython_common',
613    'pattern': '.',
614    'condition': 'checkout_android',
615    'action': [ 'vpython',
616                '-vpython-spec', '.vpython',
617                '-vpython-tool', 'install',
618    ],
619  },
620  {
621    'name': 'vpython3_common',
622    'pattern': '.',
623    'action': [ 'vpython3',
624                '-vpython-spec', '.vpython3',
625                '-vpython-tool', 'install',
626    ],
627  },
628  {
629    'name': 'check_v8_header_includes',
630    'pattern': '.',
631    'condition': 'check_v8_header_includes',
632    'action': [
633      'python3',
634      'tools/generate-header-include-checks.py',
635    ],
636  },
637]
638