blob: 8c27fa2c77216ccb1f24a3708490fad9fabe8902 [file] [log] [blame]
Corentin Wallez1a0596d2018-09-10 15:16:10 +02001use_relative_paths = True
Corentin Wallez1a0596d2018-09-10 15:16:10 +02002
Corentin Wallez4e2d7cf2020-07-14 15:53:34 +00003gclient_gn_args_file = 'build/config/gclient_args.gni'
Corentin Wallez4e2d7cf2020-07-14 15:53:34 +00004
Corentin Wallezd5203662022-01-05 15:54:08 +00005gclient_gn_args = [
6 'generate_location_tags',
7]
8
Joanna Wang77ce5592023-08-04 22:26:55 +00009git_dependencies = 'SYNC'
10
Corentin Wallez21a23852018-07-31 18:50:03 +020011vars = {
12 'chromium_git': 'https://chromium.googlesource.com',
Corentin Wallez4c351012018-08-27 10:10:28 +020013 'dawn_git': 'https://dawn.googlesource.com',
Corentin Wallez21a23852018-07-31 18:50:03 +020014 'github_git': 'https://github.com',
Corentin Wallez74cebd62019-11-26 18:21:51 +000015 'swiftshader_git': 'https://swiftshader.googlesource.com',
Corentin Wallez21a23852018-07-31 18:50:03 +020016
Corentin Wallez21a23852018-07-31 18:50:03 +020017 'dawn_standalone': True,
Ben Claytondc890d62021-09-27 22:55:39 +000018 'dawn_node': False, # Also fetches dependencies required for building NodeJS bindings.
Corentin Wallezfa1a5472022-08-02 16:07:45 +000019 'dawn_cmake_version': 'version:2@3.23.3',
Austin Eng4948c812021-10-15 14:28:32 +000020 'dawn_cmake_win32_sha1': 'b106d66bcdc8a71ea2cdf5446091327bfdb1bcd7',
danakj352b6302023-10-19 22:27:14 +000021 'dawn_gn_version': 'git_revision:182a6eb05d15cc76d2302f7928fdb4f645d52c53',
Junji Watanabe4ad7f012022-10-03 02:48:52 +000022 # ninja CIPD package version.
23 # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja
Corentin Wallez89b78092023-01-27 15:36:18 +000024 'dawn_ninja_version': 'version:2@1.11.1.chromium.6',
Ben Clayton08c4ea32023-10-30 18:46:42 +000025 'dawn_go_version': 'version:2@1.21.3',
Corentin Wallezd5203662022-01-05 15:54:08 +000026
Ben Clayton87a190e2024-01-23 15:17:03 +000027 'node_darwin_arm64_sha': '864780996d3be6c9aca03f371a4bd672728f0a75',
28 'node_darwin_x64_sha': '85ccc2202fd4f1615a443248c01a866ae227ba78',
29 'node_linux_x64_sha': '46795170ff5df9831955f163f6966abde581c8af',
30 'node_win_x64_sha': '2cb36010af52bc5e2a2d1e3675c10361c80d8f8d',
Ben Clayton6f8ff742022-03-28 19:55:42 +000031
Corentin Wallezd5203662022-01-05 15:54:08 +000032 # GN variable required by //testing that will be output in the gclient_args.gni
33 'generate_location_tags': False,
dan sinclair93cf3462022-05-16 12:58:24 +000034
35 # Fetch clang-tidy into the same bin/ directory as our clang binary.
36 'checkout_clang_tidy': False,
Ryan Harrison29fc5e92023-07-17 16:12:27 +000037
danakj4090b7d2023-10-24 17:49:01 +000038 # Fetch the rust toolchain.
39 #
40 # Use a custom_vars section to enable it:
41 # "custom_vars": {
42 # "checkout_rust": True,
43 # }
44 'checkout_rust': False,
45
Ryan Harrison29fc5e92023-07-17 16:12:27 +000046 # Fetch configuration files required for the 'use_remoteexec' gn arg
47 'download_remoteexec_cfg': False,
48 # RBE instance to use for running remote builds
Corentin Wallez5905d922023-07-27 21:33:21 +000049 'rbe_instance': 'projects/rbe-chrome-untrusted/instances/default_instance',
Ryan Harrison29fc5e92023-07-17 16:12:27 +000050 # RBE project to download rewrapper config files for. Only needed if
51 # different from the project used in 'rbe_instance'
Corentin Wallez5905d922023-07-27 21:33:21 +000052 'rewrapper_cfg_project': '',
Ryan Harrison29fc5e92023-07-17 16:12:27 +000053 # reclient CIPD package
54 'reclient_package': 'infra/rbe/client/',
55 # reclient CIPD package version
Yuly Novikov27324dd2023-09-22 15:10:33 +000056 'reclient_version': 're_client_version:0.114.2.81e819b-gomaip',
Joanna Wang77ce5592023-08-04 22:26:55 +000057
58 # 'magic' text to tell depot_tools that git submodules should be accepted
59 # but parity with DEPS file is expected.
60 'SUBMODULE_MIGRATION': 'True'
Corentin Wallez21a23852018-07-31 18:50:03 +020061}
62
63deps = {
Corentin Wallez1a0596d2018-09-10 15:16:10 +020064 'buildtools': {
Arthur Sonzognib0e40542023-11-08 17:34:19 +000065 'url': '{chromium_git}/chromium/src/buildtools@48ab3bd053bfe2fef4635d7cb1861f8923167b96',
Corentin Wallez21a23852018-07-31 18:50:03 +020066 'condition': 'dawn_standalone',
67 },
Loko Kung2d988ce2023-05-25 23:28:34 +000068 'third_party/clang-format/script': {
Austin Eng99ad82a2022-07-27 21:57:30 +000069 'url': '{chromium_git}/external/github.com/llvm/llvm-project/clang/tools/clang-format.git@8b525d2747f2584fc35d8c7e612e66f377858df7',
Corentin Wallez60ca94b2021-03-24 16:22:32 +000070 'condition': 'dawn_standalone',
71 },
Corentin Wallez60ca94b2021-03-24 16:22:32 +000072 'buildtools/linux64': {
73 'packages': [{
74 'package': 'gn/gn/linux-amd64',
Corentin Wallez88d5e072021-12-13 15:24:55 +000075 'version': Var('dawn_gn_version'),
Corentin Wallez60ca94b2021-03-24 16:22:32 +000076 }],
77 'dep_type': 'cipd',
78 'condition': 'dawn_standalone and host_os == "linux"',
79 },
80 'buildtools/mac': {
81 'packages': [{
82 'package': 'gn/gn/mac-${{arch}}',
Corentin Wallez88d5e072021-12-13 15:24:55 +000083 'version': Var('dawn_gn_version'),
Corentin Wallez60ca94b2021-03-24 16:22:32 +000084 }],
85 'dep_type': 'cipd',
86 'condition': 'dawn_standalone and host_os == "mac"',
87 },
88 'buildtools/win': {
89 'packages': [{
90 'package': 'gn/gn/windows-amd64',
Corentin Wallez88d5e072021-12-13 15:24:55 +000091 'version': Var('dawn_gn_version'),
Corentin Wallez60ca94b2021-03-24 16:22:32 +000092 }],
93 'dep_type': 'cipd',
94 'condition': 'dawn_standalone and host_os == "win"',
95 },
96
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +000097 'third_party/depot_tools': {
98 'url': '{chromium_git}/chromium/tools/depot_tools.git@35a5306635084412e01fa23d64654907f39bc44a',
99 'condition': 'dawn_standalone',
100 },
101
Joanna Wangff5d8b52023-08-02 16:35:08 +0000102 'third_party/libc++/src': {
Arthur Sonzognib0e40542023-11-08 17:34:19 +0000103 'url': '{chromium_git}/external/github.com/llvm/llvm-project/libcxx.git@278060665f956b98b54922e3cb5e38b07884ce7d',
Joanna Wange7e54c02023-07-25 17:59:41 +0000104 'condition': 'dawn_standalone',
105 },
106
Joanna Wangff5d8b52023-08-02 16:35:08 +0000107 'third_party/libc++abi/src': {
Arthur Sonzognib0e40542023-11-08 17:34:19 +0000108 'url': '{chromium_git}/external/github.com/llvm/llvm-project/libcxxabi.git@0226cb1cdfe740b173394e1cebbd0dcf293e38ad',
Joanna Wange7e54c02023-07-25 17:59:41 +0000109 'condition': 'dawn_standalone',
110 },
111
danakj4090b7d2023-10-24 17:49:01 +0000112 # Dependencies required to use GN, Clang, and Rust in standalone.
113 # The //build, //tools/clang, and //tools/rust deps should all be updated
114 # in unison, as there are dependencies between them.
115 'build': {
Rusty Sammon663c6852024-02-02 18:16:27 +0000116 'url': '{chromium_git}/chromium/src/build@c6118a585ff6b2ef9f9a3b180d57b3cbf79e1788',
Corentin Wallez21a23852018-07-31 18:50:03 +0200117 'condition': 'dawn_standalone',
118 },
danakj4090b7d2023-10-24 17:49:01 +0000119 'tools/clang': {
Rusty Sammon663c6852024-02-02 18:16:27 +0000120 'url': '{chromium_git}/chromium/src/tools/clang@de6b303a8915c2610e6ff30f5e7c89b2c8e4e2af',
danakj4090b7d2023-10-24 17:49:01 +0000121 'condition': 'dawn_standalone',
122 },
123 'tools/rust': {
Rusty Sammon663c6852024-02-02 18:16:27 +0000124 'url': '{chromium_git}/chromium/src/tools/rust@bcaf16e552b19d4f5d67636d8373c172a2cf8a1a',
danakj4090b7d2023-10-24 17:49:01 +0000125 'condition': 'dawn_standalone and checkout_rust',
126 },
Kai Ninomiyaf526d772020-04-06 22:27:02 +0000127 'tools/clang/dsymutil': {
Corentin Wallez60ca94b2021-03-24 16:22:32 +0000128 'packages': [{
129 'package': 'chromium/llvm-build-tools/dsymutil',
130 'version': 'M56jPzDv1620Rnm__jTMYS62Zi8rxHVq7yw0qeBFEgkC',
131 }],
Corentin Wallez2015b2f2021-03-04 17:37:55 +0000132 'condition': 'dawn_standalone and (checkout_mac or checkout_ios)',
Kai Ninomiyaf526d772020-04-06 22:27:02 +0000133 'dep_type': 'cipd',
134 },
Corentin Wallez21a23852018-07-31 18:50:03 +0200135
Corentin Wallez649e2fe2018-08-03 15:57:43 +0200136 # Testing, GTest and GMock
Corentin Wallez1a0596d2018-09-10 15:16:10 +0200137 'testing': {
Ben Clayton3610fc92023-09-29 12:13:00 +0000138 'url': '{chromium_git}/chromium/src/testing@035a9b18047370df7403758b006e6c9696d6b84d',
Ben Claytonb7bd8d82023-09-28 14:10:51 +0000139 'condition': 'dawn_standalone',
140 },
141 'third_party/libFuzzer/src': {
142 'url': '{chromium_git}/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git' + '@' + '26cc39e59b2bf5cbc20486296248a842c536878d',
Corentin Wallez21a23852018-07-31 18:50:03 +0200143 'condition': 'dawn_standalone',
144 },
Corentin Wallez1a0596d2018-09-10 15:16:10 +0200145 'third_party/googletest': {
Austin Enga0e96b52023-02-18 00:39:01 +0000146 'url': '{chromium_git}/external/github.com/google/googletest@7a7231c442484be389fdf01594310349ca0e42a8',
Corentin Wallezd5203662022-01-05 15:54:08 +0000147 'condition': 'dawn_standalone',
148 },
149 # This is a dependency of //testing
150 'third_party/catapult': {
Anne Redulla3bcc93f2023-08-09 15:12:58 +0000151 'url': '{chromium_git}/catapult.git@dd218dfd815774289f8a81015f7a3131f72afbde',
Corentin Wallez649e2fe2018-08-03 15:57:43 +0200152 'condition': 'dawn_standalone',
153 },
Austin Eng6a7bba52023-04-17 18:11:51 +0000154 'third_party/google_benchmark/src': {
155 'url': '{chromium_git}/external/github.com/google/benchmark.git' + '@' + 'efc89f0b524780b1994d5dddd83a92718e5be492',
156 'condition': 'dawn_standalone',
157 },
Corentin Wallez21a23852018-07-31 18:50:03 +0200158
Corentin Wallez3bb0bb92018-08-13 17:47:44 +0200159 # Jinja2 and MarkupSafe for the code generator
Corentin Wallez1a0596d2018-09-10 15:16:10 +0200160 'third_party/jinja2': {
Corentin Wallezd2c27be2024-01-09 12:37:34 +0000161 'url': '{chromium_git}/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07',
Corentin Wallez3bb0bb92018-08-13 17:47:44 +0200162 'condition': 'dawn_standalone',
163 },
Corentin Wallez1a0596d2018-09-10 15:16:10 +0200164 'third_party/markupsafe': {
Corentin Wallezd2c27be2024-01-09 12:37:34 +0000165 'url': '{chromium_git}/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794',
Corentin Wallez3bb0bb92018-08-13 17:47:44 +0200166 'condition': 'dawn_standalone',
167 },
168
Corentin Wallez4d7d1692018-08-13 08:23:27 +0200169 # GLFW for tests and samples
Corentin Wallez1a0596d2018-09-10 15:16:10 +0200170 'third_party/glfw': {
Corentin Wallez6903c462022-05-25 17:46:04 +0000171 'url': '{chromium_git}/external/github.com/glfw/glfw@62e175ef9fae75335575964c845a302447c012c7',
Corentin Wallez4d7d1692018-08-13 08:23:27 +0200172 },
173
Stephen White77fcdf72021-01-11 15:52:12 +0000174 'third_party/vulkan_memory_allocator': {
Corentin Walleze7badbc2024-01-10 19:19:41 +0000175 'url': '{chromium_git}/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@52dc220fb326e6ae132b7f262133b37b0dc334a3',
Stephen White77fcdf72021-01-11 15:52:12 +0000176 'condition': 'dawn_standalone',
177 },
178
179 'third_party/angle': {
Dawn Autorollerc6042172024-03-01 00:41:27 +0000180 'url': '{chromium_git}/angle/angle@8142dde7f40869a0ea11ecf20a1fe813f5240a26',
Stephen White77fcdf72021-01-11 15:52:12 +0000181 'condition': 'dawn_standalone',
182 },
183
Corentin Wallez74cebd62019-11-26 18:21:51 +0000184 'third_party/swiftshader': {
Dawn Autoroller02dfb7e2024-02-26 22:40:55 +0000185 'url': '{swiftshader_git}/SwiftShader@bbe6452b420c5ddc4b0fd421b0a3ce271262f4ca',
Corentin Wallez74cebd62019-11-26 18:21:51 +0000186 'condition': 'dawn_standalone',
187 },
188
Stephen Whitef1fa60b2021-01-06 17:41:50 +0000189 'third_party/vulkan-deps': {
dawn-autorolld4da4d92024-02-29 14:10:39 +0000190 'url': '{chromium_git}/vulkan-deps@12f9cddb3ff768f515b9bd2480094a4310f4d9d3',
Corentin Wallez1fdd0592021-04-02 18:04:27 +0000191 'condition': 'dawn_standalone',
Stephen White77fcdf72021-01-11 15:52:12 +0000192 },
193
194 'third_party/zlib': {
Anne Redulla3bcc93f2023-08-09 15:12:58 +0000195 'url': '{chromium_git}/chromium/src/third_party/zlib@526382e41c9c5275dc329db4328b54e4f344a204',
Stephen Whitef1fa60b2021-01-06 17:41:50 +0000196 'condition': 'dawn_standalone',
197 },
Brandon Jonesa04663c2021-09-23 20:36:03 +0000198
199 'third_party/abseil-cpp': {
Austin Engf7d7c6b2024-01-24 10:19:06 +0000200 'url': '{chromium_git}/chromium/src/third_party/abseil-cpp@1cd1f16ff8f7fb5402aeda870c82652edf8f663a',
Brandon Jonesa04663c2021-09-23 20:36:03 +0000201 'condition': 'dawn_standalone',
202 },
Ben Claytondc890d62021-09-27 22:55:39 +0000203
Antonio Maioranoad5e1082023-06-22 20:45:54 +0000204 'third_party/dxc': {
Dawn Autoroller2fa5cd22024-02-29 03:21:29 +0000205 'url': '{chromium_git}/external/github.com/microsoft/DirectXShaderCompiler@bbcbb2de14a67b5d8f4a0bff9b9db274b27b7fc5',
Antonio Maioranoad5e1082023-06-22 20:45:54 +0000206 },
Antonio Maiorano83bdc7f2023-08-21 15:29:35 +0000207
Antonio Maioranoad5e1082023-06-22 20:45:54 +0000208 'third_party/dxheaders': {
209 # The non-Windows build of DXC depends on DirectX-Headers, and at a specific commit (not ToT)
210 'url': '{chromium_git}/external/github.com/microsoft/DirectX-Headers@980971e835876dc0cde415e8f9bc646e64667bf7',
Austin Engc02f1432023-07-05 22:38:39 +0000211 'condition': 'host_os != "win"',
Antonio Maioranoad5e1082023-06-22 20:45:54 +0000212 },
213
Antonio Maiorano83bdc7f2023-08-21 15:29:35 +0000214 'third_party/khronos/OpenGL-Registry': {
215 'url': '{chromium_git}/external/github.com/KhronosGroup/OpenGL-Registry@5bae8738b23d06968e7c3a41308568120943ae77',
216 },
217
218 'third_party/khronos/EGL-Registry': {
219 'url': '{chromium_git}/external/github.com/KhronosGroup/EGL-Registry@7dea2ed79187cd13f76183c4b9100159b9e3e071',
220 },
221
Kai Ninomiya5c780d72022-03-17 21:43:17 +0000222 # WebGPU CTS - not used directly by Dawn, only transitively by Chromium.
223 'third_party/webgpu-cts': {
dan sinclair03058802024-02-28 23:16:32 +0000224 'url': '{chromium_git}/external/github.com/gpuweb/cts@bc5d36d244b3d6fe7c1a20297e261f6c0e05f664',
Kai Ninomiya5c780d72022-03-17 21:43:17 +0000225 'condition': 'build_with_chromium',
226 },
227
Ben Clayton6f8ff742022-03-28 19:55:42 +0000228 # Dependencies required to build / run Dawn NodeJS bindings
Ben Claytondc890d62021-09-27 22:55:39 +0000229 'third_party/node-api-headers': {
230 'url': '{github_git}/nodejs/node-api-headers.git@d68505e4055ecb630e14c26c32e5c2c65e179bba',
231 'condition': 'dawn_node',
232 },
233 'third_party/node-addon-api': {
234 'url': '{github_git}/nodejs/node-addon-api.git@4a3de56c3e4ed0031635a2f642b27efeeed00add',
235 'condition': 'dawn_node',
236 },
237 'third_party/gpuweb': {
François Beaufortcdfcfca2023-11-25 06:05:33 +0000238 'url': '{github_git}/gpuweb/gpuweb.git@a6805d5298c6979392768ed13f442e35b9a35b22',
Ben Claytondc890d62021-09-27 22:55:39 +0000239 'condition': 'dawn_node',
240 },
Austin Eng4948c812021-10-15 14:28:32 +0000241
242 'tools/golang': {
Austin Eng4948c812021-10-15 14:28:32 +0000243 'packages': [{
244 'package': 'infra/3pp/tools/go/${{platform}}',
245 'version': Var('dawn_go_version'),
246 }],
247 'dep_type': 'cipd',
248 },
249
250 'tools/cmake': {
251 'condition': 'dawn_node and (host_os == "mac" or host_os == "linux")',
252 'packages': [{
253 'package': 'infra/3pp/tools/cmake/${{platform}}',
254 'version': Var('dawn_cmake_version'),
255 }],
256 'dep_type': 'cipd',
257 },
Ryan Harrisone87ac762022-04-06 15:37:27 -0400258
Junji Watanabe4ad7f012022-10-03 02:48:52 +0000259 'third_party/ninja': {
260 'packages': [
261 {
262 'package': 'infra/3pp/tools/ninja/${{platform}}',
263 'version': Var('dawn_ninja_version'),
264 }
265 ],
266 'dep_type': 'cipd',
267 },
268
Ryan Harrison29fc5e92023-07-17 16:12:27 +0000269 # RBE dependencies
270 'buildtools/reclient': {
271 'packages': [
272 {
273 'package': Var('reclient_package') + '${{platform}}',
274 'version': Var('reclient_version'),
275 }
276 ],
277 'dep_type': 'cipd',
278 'condition': 'dawn_standalone',
279 },
Ryan Harrison29fc5e92023-07-17 16:12:27 +0000280
Ryan Harrisone87ac762022-04-06 15:37:27 -0400281 # Misc dependencies inherited from Tint
Ryan Harrison3374f432022-03-28 18:01:02 +0000282 'third_party/protobuf': {
Ben Claytonde2686e2023-11-16 12:39:06 +0000283 'url': '{chromium_git}/chromium/src/third_party/protobuf@41759e11ec427e29e1a72b9401d2af3f6e02d839',
284 'condition': 'dawn_standalone',
285 },
286
287 'tools/protoc_wrapper': {
288 'url': '{chromium_git}/chromium/src/tools/protoc_wrapper@b5ea227bd88235ab3ccda964d5f3819c4e2d8032',
Ryan Harrisone87ac762022-04-06 15:37:27 -0400289 'condition': 'dawn_standalone',
Ryan Harrison3374f432022-03-28 18:01:02 +0000290 },
Arthur Sonzogni8b28afe2023-10-12 16:06:04 +0000291
292 # Dependencies for PartitionAlloc.
293 # Doc: https://docs.google.com/document/d/1wz45t0alQthsIU9P7_rQcfQyqnrBMXzrOjSzdQo-V-A
294 'third_party/partition_alloc': {
Arthur Sonzogni7379e222024-01-09 17:32:25 +0000295 'url': '{chromium_git}/chromium/src/base/allocator/partition_allocator.git@67fd2f86eef40b1357387e2b0fc1eaf3c67d6ed7',
Arthur Sonzogni8b28afe2023-10-12 16:06:04 +0000296 'condition': 'dawn_standalone',
297 },
Corentin Wallez21a23852018-07-31 18:50:03 +0200298}
299
300hooks = [
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000301 {
302 # Ensure that the DEPS'd "depot_tools" has its self-update capability
303 # disabled.
304 'name': 'disable_depot_tools_selfupdate',
305 'pattern': '.',
306 'condition': 'dawn_standalone',
307 'action': [
308 'python3',
309 'third_party/depot_tools/update_depot_tools_toggle.py',
310 '--disable',
311 ],
312 },
313
Corentin Wallez21a23852018-07-31 18:50:03 +0200314 # Pull the compilers and system libraries for hermetic builds
315 {
316 'name': 'sysroot_x86',
317 'pattern': '.',
Corentin Wallez2015b2f2021-03-04 17:37:55 +0000318 'condition': 'dawn_standalone and checkout_linux and (checkout_x86 or checkout_x64)',
Corentin Wallezd5203662022-01-05 15:54:08 +0000319 'action': ['python3', 'build/linux/sysroot_scripts/install-sysroot.py',
Corentin Wallez21a23852018-07-31 18:50:03 +0200320 '--arch=x86'],
321 },
322 {
323 'name': 'sysroot_x64',
324 'pattern': '.',
Corentin Wallez2015b2f2021-03-04 17:37:55 +0000325 'condition': 'dawn_standalone and checkout_linux and checkout_x64',
Corentin Wallezd5203662022-01-05 15:54:08 +0000326 'action': ['python3', 'build/linux/sysroot_scripts/install-sysroot.py',
Corentin Wallez21a23852018-07-31 18:50:03 +0200327 '--arch=x64'],
328 },
329 {
Corentin Wallezd4e7f082020-11-17 21:16:31 +0000330 # Update the Mac toolchain if possible, this makes builders use "hermetic XCode" which is
331 # is more consistent (only changes when rolling build/) and is cached.
332 'name': 'mac_toolchain',
333 'pattern': '.',
Corentin Wallez2015b2f2021-03-04 17:37:55 +0000334 'condition': 'dawn_standalone and checkout_mac',
Corentin Wallezd5203662022-01-05 15:54:08 +0000335 'action': ['python3', 'build/mac_toolchain.py'],
Corentin Wallezd4e7f082020-11-17 21:16:31 +0000336 },
337 {
Peng Huang78583a12023-02-10 13:53:31 +0000338 # Case-insensitivity for the Win SDK. Must run before win_toolchain below.
339 'name': 'ciopfs_linux',
340 'pattern': '.',
Peng Huang708a0772023-02-13 11:38:38 +0000341 'condition': 'dawn_standalone and checkout_win and host_os == "linux"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000342 'action': [ 'python3',
343 'third_party/depot_tools/download_from_google_storage.py',
Peng Huang78583a12023-02-10 13:53:31 +0000344 '--no_resume',
345 '--no_auth',
346 '--bucket', 'chromium-browser-clang/ciopfs',
347 '-s', 'build/ciopfs.sha1',
348 ]
349 },
350 {
Corentin Wallez682c44a2018-08-13 17:48:16 +0200351 # Update the Windows toolchain if necessary. Must run before 'clang' below.
Corentin Wallez21a23852018-07-31 18:50:03 +0200352 'name': 'win_toolchain',
353 'pattern': '.',
Corentin Wallez2015b2f2021-03-04 17:37:55 +0000354 'condition': 'dawn_standalone and checkout_win',
Corentin Wallezd5203662022-01-05 15:54:08 +0000355 'action': ['python3', 'build/vs_toolchain.py', 'update', '--force'],
Corentin Wallez21a23852018-07-31 18:50:03 +0200356 },
357 {
358 # Note: On Win, this should run after win_toolchain, as it may use it.
359 'name': 'clang',
360 'pattern': '.',
Corentin Wallezd5203662022-01-05 15:54:08 +0000361 'action': ['python3', 'tools/clang/scripts/update.py'],
Corentin Wallez21a23852018-07-31 18:50:03 +0200362 'condition': 'dawn_standalone',
363 },
364 {
dan sinclair93cf3462022-05-16 12:58:24 +0000365 # This is also supposed to support the same set of platforms as 'clang'
366 # above. LLVM ToT support isn't provided at the moment.
367 'name': 'clang_tidy',
368 'pattern': '.',
Corentin Wallezc4051b12022-05-17 08:21:02 +0000369 'condition': 'dawn_standalone and checkout_clang_tidy',
dan sinclair93cf3462022-05-16 12:58:24 +0000370 'action': ['python3', 'tools/clang/scripts/update.py',
371 '--package=clang-tidy'],
372 },
373 {
danakj4090b7d2023-10-24 17:49:01 +0000374 'name': 'rust',
375 'pattern': '.',
376 'action': ['python3', 'tools/rust/update_rust.py'],
377 'condition': 'dawn_standalone and checkout_rust',
378 },
379 {
Corentin Wallez21a23852018-07-31 18:50:03 +0200380 # Pull rc binaries using checked-in hashes.
381 'name': 'rc_win',
382 'pattern': '.',
Corentin Wallez2015b2f2021-03-04 17:37:55 +0000383 'condition': 'dawn_standalone and checkout_win and host_os == "win"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000384 'action': [ 'python3',
385 'third_party/depot_tools/download_from_google_storage.py',
Corentin Wallez21a23852018-07-31 18:50:03 +0200386 '--no_resume',
387 '--no_auth',
388 '--bucket', 'chromium-browser-clang/rc',
Corentin Wallez1a0596d2018-09-10 15:16:10 +0200389 '-s', 'build/toolchain/win/rc/win/rc.exe.sha1',
Corentin Wallez21a23852018-07-31 18:50:03 +0200390 ],
391 },
Peng Huang78583a12023-02-10 13:53:31 +0000392 {
393 'name': 'rc_linux',
394 'pattern': '.',
Peng Huang708a0772023-02-13 11:38:38 +0000395 'condition': 'dawn_standalone and checkout_win and host_os == "linux"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000396 'action': [ 'python3',
397 'third_party/depot_tools/download_from_google_storage.py',
Peng Huang78583a12023-02-10 13:53:31 +0000398 '--no_resume',
399 '--no_auth',
400 '--bucket', 'chromium-browser-clang/rc',
401 '-s', 'build/toolchain/win/rc/linux64/rc.sha1',
Antonio Maioranoef9da422023-09-21 17:53:34 +0000402 ],
403 },
404 {
405 'name': 'rc_mac',
406 'pattern': '.',
407 'condition': 'dawn_standalone and checkout_win and host_os == "mac"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000408 'action': [ 'python3',
409 'third_party/depot_tools/download_from_google_storage.py',
Antonio Maioranoef9da422023-09-21 17:53:34 +0000410 '--no_resume',
411 '--no_auth',
412 '--bucket', 'chromium-browser-clang/rc',
413 '-s', 'build/toolchain/win/rc/mac/rc.sha1',
414 ],
Peng Huang78583a12023-02-10 13:53:31 +0000415 },
Corentin Wallez131e6192020-11-03 18:18:06 +0000416 # Pull clang-format binaries using checked-in hashes.
417 {
Corentin Wallez51723bd2022-04-07 10:40:46 +0000418 'name': 'clang_format_win',
419 'pattern': '.',
420 'condition': 'dawn_standalone and host_os == "win"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000421 'action': [ 'python3',
422 'third_party/depot_tools/download_from_google_storage.py',
Corentin Wallez51723bd2022-04-07 10:40:46 +0000423 '--no_resume',
424 '--no_auth',
425 '--bucket', 'chromium-clang-format',
426 '-s', 'buildtools/win/clang-format.exe.sha1',
427 ],
428 },
429 {
Ben Clayton088a6002022-04-06 19:57:42 +0000430 'name': 'clang_format_mac_x64',
Corentin Wallez131e6192020-11-03 18:18:06 +0000431 'pattern': '.',
Ben Clayton088a6002022-04-06 19:57:42 +0000432 'condition': 'dawn_standalone and host_os == "mac" and host_cpu == "x64"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000433 'action': [ 'python3',
434 'third_party/depot_tools/download_from_google_storage.py',
Corentin Wallez131e6192020-11-03 18:18:06 +0000435 '--no_resume',
436 '--no_auth',
437 '--bucket', 'chromium-clang-format',
Ben Clayton088a6002022-04-06 19:57:42 +0000438 '-s', 'buildtools/mac/clang-format.x64.sha1',
439 '-o', 'buildtools/mac/clang-format',
Corentin Wallez131e6192020-11-03 18:18:06 +0000440 ],
441 },
442 {
Ben Clayton088a6002022-04-06 19:57:42 +0000443 'name': 'clang_format_mac_arm64',
Corentin Wallez131e6192020-11-03 18:18:06 +0000444 'pattern': '.',
Ben Clayton088a6002022-04-06 19:57:42 +0000445 'condition': 'dawn_standalone and host_os == "mac" and host_cpu == "arm64"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000446 'action': [ 'python3',
447 'third_party/depot_tools/download_from_google_storage.py',
Corentin Wallez131e6192020-11-03 18:18:06 +0000448 '--no_resume',
449 '--no_auth',
450 '--bucket', 'chromium-clang-format',
Ben Clayton088a6002022-04-06 19:57:42 +0000451 '-s', 'buildtools/mac/clang-format.arm64.sha1',
452 '-o', 'buildtools/mac/clang-format',
Corentin Wallez131e6192020-11-03 18:18:06 +0000453 ],
454 },
455 {
456 'name': 'clang_format_linux',
457 'pattern': '.',
Corentin Wallez2015b2f2021-03-04 17:37:55 +0000458 'condition': 'dawn_standalone and host_os == "linux"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000459 'action': [ 'python3',
460 'third_party/depot_tools/download_from_google_storage.py',
Corentin Wallez131e6192020-11-03 18:18:06 +0000461 '--no_resume',
462 '--no_auth',
463 '--bucket', 'chromium-clang-format',
464 '-s', 'buildtools/linux64/clang-format.sha1',
465 ],
466 },
Corentin Wallez15d8cb72018-11-19 10:13:31 +0000467 # Update build/util/LASTCHANGE.
468 {
469 'name': 'lastchange',
470 'pattern': '.',
Jiajie Hu2ffc55a2020-07-01 05:08:36 +0000471 'condition': 'dawn_standalone',
Corentin Wallezd5203662022-01-05 15:54:08 +0000472 'action': ['python3', 'build/util/lastchange.py',
Corentin Wallez15d8cb72018-11-19 10:13:31 +0000473 '-o', 'build/util/LASTCHANGE'],
474 },
Austin Eng4948c812021-10-15 14:28:32 +0000475 # TODO(https://crbug.com/1180257): Use CIPD for CMake on Windows.
476 {
477 'name': 'cmake_win32',
478 'pattern': '.',
479 'condition': 'dawn_node and host_os == "win"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000480 'action': [ 'python3',
481 'third_party/depot_tools/download_from_google_storage.py',
Austin Eng4948c812021-10-15 14:28:32 +0000482 '--no_resume',
483 '--platform=win32',
484 '--no_auth',
485 '--bucket', 'chromium-tools',
486 Var('dawn_cmake_win32_sha1'),
487 '-o', 'tools/cmake-win32.zip'
488 ],
489 },
490 {
491 'name': 'cmake_win32_extract',
492 'pattern': '.',
493 'condition': 'dawn_node and host_os == "win"',
Corentin Wallezd5203662022-01-05 15:54:08 +0000494 'action': [ 'python3',
Austin Eng4948c812021-10-15 14:28:32 +0000495 'scripts/extract.py',
496 'tools/cmake-win32.zip',
497 'tools/cmake-win32/',
498 ],
499 },
Ben Clayton6f8ff742022-03-28 19:55:42 +0000500
501 # Node binaries, when dawn_node is enabled
502 {
503 'name': 'node_linux64',
504 'pattern': '.',
505 'condition': 'dawn_node and host_os == "linux"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000506 'action': [ 'python3',
507 'third_party/depot_tools/download_from_google_storage.py',
Ben Clayton6f8ff742022-03-28 19:55:42 +0000508 '--no_resume',
509 '--extract',
510 '--no_auth',
Ben Clayton87a190e2024-01-23 15:17:03 +0000511 '--bucket', 'chromium-nodejs/20.11.0',
Ben Clayton6f8ff742022-03-28 19:55:42 +0000512 Var('node_linux_x64_sha'),
513 '-o', 'third_party/node/node-linux-x64.tar.gz',
514 ],
515 },
516 {
517 'name': 'node_mac',
518 'pattern': '.',
519 'condition': 'dawn_node and host_os == "mac"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000520 'action': [ 'python3',
521 'third_party/depot_tools/download_from_google_storage.py',
Ben Clayton6f8ff742022-03-28 19:55:42 +0000522 '--no_resume',
523 '--extract',
524 '--no_auth',
Ben Clayton87a190e2024-01-23 15:17:03 +0000525 '--bucket', 'chromium-nodejs/20.11.0',
Ben Clayton6f8ff742022-03-28 19:55:42 +0000526 Var('node_darwin_x64_sha'),
527 '-o', 'third_party/node/node-darwin-x64.tar.gz',
528 ],
529 },
530 {
531 'name': 'node_mac_arm64',
532 'pattern': '.',
533 'condition': 'dawn_node and host_os == "mac"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000534 'action': [ 'python3',
535 'third_party/depot_tools/download_from_google_storage.py',
Ben Clayton6f8ff742022-03-28 19:55:42 +0000536 '--no_resume',
537 '--extract',
538 '--no_auth',
Ben Clayton87a190e2024-01-23 15:17:03 +0000539 '--bucket', 'chromium-nodejs/20.11.0',
Ben Clayton6f8ff742022-03-28 19:55:42 +0000540 Var('node_darwin_arm64_sha'),
541 '-o', 'third_party/node/node-darwin-arm64.tar.gz',
542 ],
543 },
544 {
545 'name': 'node_win',
546 'pattern': '.',
547 'condition': 'dawn_node and host_os == "win"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000548 'action': [ 'python3',
549 'third_party/depot_tools/download_from_google_storage.py',
Ben Clayton6f8ff742022-03-28 19:55:42 +0000550 '--no_resume',
551 '--no_auth',
Ben Clayton87a190e2024-01-23 15:17:03 +0000552 '--bucket', 'chromium-nodejs/20.11.0',
Ben Clayton6f8ff742022-03-28 19:55:42 +0000553 Var('node_win_x64_sha'),
554 '-o', 'third_party/node/node.exe',
555 ],
556 },
Ryan Harrisonce158be2023-07-20 17:06:56 +0000557 {
558 # Download remote exec cfg files
559 'name': 'fetch_reclient_cfgs',
560 'pattern': '.',
Austin Engd6c4f662023-07-21 01:00:22 +0000561 'condition': 'download_remoteexec_cfg and dawn_standalone',
Ryan Harrisonce158be2023-07-20 17:06:56 +0000562 'action': ['python3',
563 'buildtools/reclient_cfgs/fetch_reclient_cfgs.py',
564 '--rbe_instance',
565 Var('rbe_instance'),
566 '--reproxy_cfg_template',
567 'reproxy.cfg.template',
568 '--rewrapper_cfg_project',
569 Var('rewrapper_cfg_project'),
570 '--quiet',
Ryan Harrisonce158be2023-07-20 17:06:56 +0000571 ],
572 },
Corentin Wallezca81bd32018-09-03 11:55:58 +0200573]
574
575recursedeps = [
Stephen Whitef1fa60b2021-01-06 17:41:50 +0000576 'third_party/vulkan-deps',
Corentin Wallez21a23852018-07-31 18:50:03 +0200577]