1 use_relative_paths = True
3 gclient_gn_args_file = 'build/config/gclient_args.gni'
6 'generate_location_tags',
9 git_dependencies = 'SYNC'
12 'chromium_git': 'https://chromium.googlesource.com',
13 'dawn_git': 'https://dawn.googlesource.com',
14 'github_git': 'https://github.com',
15 'swiftshader_git': 'https://swiftshader.googlesource.com',
17 'dawn_standalone': True,
18 'dawn_node': False, # Also fetches dependencies required for building NodeJS bindings.
19 'dawn_cmake_version': 'version:2@3.23.3',
20 'dawn_cmake_win32_sha1': 'b106d66bcdc8a71ea2cdf5446091327bfdb1bcd7',
21 'dawn_gn_version': 'git_revision:182a6eb05d15cc76d2302f7928fdb4f645d52c53',
22 # ninja CIPD package version.
23 # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja
24 'dawn_ninja_version': 'version:2@1.11.1.chromium.6',
25 'dawn_go_version': 'version:2@1.21.3',
27 'node_darwin_arm64_sha': '31859fc1fa0994a95f44f09c367d6ff63607cfde',
28 'node_darwin_x64_sha': '16dfd094763b71988933a31735f9dea966f9abd6',
29 'node_linux_x64_sha': 'ab9544e24e752d3d17f335fb7b2055062e582d11',
30 'node_win_x64_sha': '5ef847033c517c499f56f9d136d159b663bab717',
32 # GN variable required by //testing that will be output in the gclient_args.gni
33 'generate_location_tags': False,
35 # Fetch clang-tidy into the same bin/ directory as our clang binary.
36 'checkout_clang_tidy': False,
38 # Fetch the rust toolchain.
40 # Use a custom_vars section to enable it:
42 # "checkout_rust": True,
44 'checkout_rust': False,
46 # Fetch configuration files required for the 'use_remoteexec' gn arg
47 'download_remoteexec_cfg': False,
48 # RBE instance to use for running remote builds
49 'rbe_instance': 'projects/rbe-chrome-untrusted/instances/default_instance',
50 # RBE project to download rewrapper config files for. Only needed if
51 # different from the project used in 'rbe_instance'
52 'rewrapper_cfg_project': '',
53 # reclient CIPD package
54 'reclient_package': 'infra/rbe/client/',
55 # reclient CIPD package version
56 'reclient_version': 're_client_version:0.114.2.81e819b-gomaip',
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'
65 'url': '{chromium_git}/chromium/src/buildtools@a9a6f0c49d0e8fa0cda37337430b4736ab3dc944',
66 'condition': 'dawn_standalone',
68 'third_party/clang-format/script': {
69 'url': '{chromium_git}/external/github.com/llvm/llvm-project/clang/tools/clang-format.git@8b525d2747f2584fc35d8c7e612e66f377858df7',
70 'condition': 'dawn_standalone',
72 'buildtools/linux64': {
74 'package': 'gn/gn/linux-amd64',
75 'version': Var('dawn_gn_version'),
78 'condition': 'dawn_standalone and host_os == "linux"',
82 'package': 'gn/gn/mac-${{arch}}',
83 'version': Var('dawn_gn_version'),
86 'condition': 'dawn_standalone and host_os == "mac"',
90 'package': 'gn/gn/windows-amd64',
91 'version': Var('dawn_gn_version'),
94 'condition': 'dawn_standalone and host_os == "win"',
97 'third_party/libc++/src': {
98 'url': '{chromium_git}/external/github.com/llvm/llvm-project/libcxx.git@84fb809dd6dae36d556dc0bb702c6cc2ce9d4b80',
99 'condition': 'dawn_standalone',
102 'third_party/libc++abi/src': {
103 'url': '{chromium_git}/external/github.com/llvm/llvm-project/libcxxabi.git@d4760c0af99ccc9bce077960d5ddde4d66146c05',
104 'condition': 'dawn_standalone',
107 # Dependencies required to use GN, Clang, and Rust in standalone.
108 # The //build, //tools/clang, and //tools/rust deps should all be updated
109 # in unison, as there are dependencies between them.
111 'url': '{chromium_git}/chromium/src/build@e2f4d00875f7d00fad39d5af2c6869ac7c7413cc',
112 'condition': 'dawn_standalone',
115 'url': '{chromium_git}/chromium/src/tools/clang@86aed39db276fb876a2b98c93cc6ff8940377903',
116 'condition': 'dawn_standalone',
119 'url': '{chromium_git}/chromium/src/tools/rust@7052bd3aa0eba2d3d701b7a76219e3b04770540e',
120 'condition': 'dawn_standalone and checkout_rust',
122 'tools/clang/dsymutil': {
124 'package': 'chromium/llvm-build-tools/dsymutil',
125 'version': 'M56jPzDv1620Rnm__jTMYS62Zi8rxHVq7yw0qeBFEgkC',
127 'condition': 'dawn_standalone and (checkout_mac or checkout_ios)',
131 # Testing, GTest and GMock
133 'url': '{chromium_git}/chromium/src/testing@035a9b18047370df7403758b006e6c9696d6b84d',
134 'condition': 'dawn_standalone',
136 'third_party/libFuzzer/src': {
137 'url': '{chromium_git}/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git' + '@' + '26cc39e59b2bf5cbc20486296248a842c536878d',
138 'condition': 'dawn_standalone',
140 'third_party/googletest': {
141 'url': '{chromium_git}/external/github.com/google/googletest@7a7231c442484be389fdf01594310349ca0e42a8',
142 'condition': 'dawn_standalone',
144 # This is a dependency of //testing
145 'third_party/catapult': {
146 'url': '{chromium_git}/catapult.git@dd218dfd815774289f8a81015f7a3131f72afbde',
147 'condition': 'dawn_standalone',
149 'third_party/google_benchmark/src': {
150 'url': '{chromium_git}/external/github.com/google/benchmark.git' + '@' + 'efc89f0b524780b1994d5dddd83a92718e5be492',
151 'condition': 'dawn_standalone',
154 # Jinja2 and MarkupSafe for the code generator
155 'third_party/jinja2': {
156 'url': '{chromium_git}/chromium/src/third_party/jinja2@515dd10de9bf63040045902a4a310d2ba25213a0',
157 'condition': 'dawn_standalone',
159 'third_party/markupsafe': {
160 'url': '{chromium_git}/chromium/src/third_party/markupsafe@006709ba3ed87660a17bd4548c45663628f5ed85',
161 'condition': 'dawn_standalone',
164 # GLFW for tests and samples
165 'third_party/glfw': {
166 'url': '{chromium_git}/external/github.com/glfw/glfw@62e175ef9fae75335575964c845a302447c012c7',
169 'third_party/vulkan_memory_allocator': {
170 'url': '{chromium_git}/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@e87036508bb156f9986ea959323de1869e328f58',
171 'condition': 'dawn_standalone',
174 'third_party/angle': {
175 'url': '{chromium_git}/angle/angle@b56a72045a2b8ca5daf15d8177b462d256fc5181',
176 'condition': 'dawn_standalone',
179 'third_party/swiftshader': {
180 'url': '{swiftshader_git}/SwiftShader@d9ec9befba05a8dfca09c1e88f3f7be0e4b153c6',
181 'condition': 'dawn_standalone',
184 'third_party/vulkan-deps': {
185 'url': '{chromium_git}/vulkan-deps@1a99a795c2297084596c89b559c3a3a55bbf7abf',
186 'condition': 'dawn_standalone',
189 'third_party/zlib': {
190 'url': '{chromium_git}/chromium/src/third_party/zlib@526382e41c9c5275dc329db4328b54e4f344a204',
191 'condition': 'dawn_standalone',
194 'third_party/abseil-cpp': {
195 'url': '{chromium_git}/chromium/src/third_party/abseil-cpp@4ef9b33175828ea46d091e7e5ec28259d39a8ba5',
196 'condition': 'dawn_standalone',
200 'url': '{chromium_git}/external/github.com/microsoft/DirectXShaderCompiler@64030a4e01e27c608b6c5f1ab5add43575e086f9',
203 'third_party/dxheaders': {
204 # The non-Windows build of DXC depends on DirectX-Headers, and at a specific commit (not ToT)
205 'url': '{chromium_git}/external/github.com/microsoft/DirectX-Headers@980971e835876dc0cde415e8f9bc646e64667bf7',
206 'condition': 'host_os != "win"',
209 'third_party/khronos/OpenGL-Registry': {
210 'url': '{chromium_git}/external/github.com/KhronosGroup/OpenGL-Registry@5bae8738b23d06968e7c3a41308568120943ae77',
213 'third_party/khronos/EGL-Registry': {
214 'url': '{chromium_git}/external/github.com/KhronosGroup/EGL-Registry@7dea2ed79187cd13f76183c4b9100159b9e3e071',
217 # WebGPU CTS - not used directly by Dawn, only transitively by Chromium.
218 'third_party/webgpu-cts': {
219 'url': '{chromium_git}/external/github.com/gpuweb/cts@2ef3f322027bec1bb5572f5083d478148d355d79',
220 'condition': 'build_with_chromium',
223 # Dependencies required to build / run Dawn NodeJS bindings
224 'third_party/node-api-headers': {
225 'url': '{github_git}/nodejs/node-api-headers.git@d68505e4055ecb630e14c26c32e5c2c65e179bba',
226 'condition': 'dawn_node',
228 'third_party/node-addon-api': {
229 'url': '{github_git}/nodejs/node-addon-api.git@4a3de56c3e4ed0031635a2f642b27efeeed00add',
230 'condition': 'dawn_node',
232 'third_party/gpuweb': {
233 'url': '{github_git}/gpuweb/gpuweb.git@17f7771857dd6cf0377a99e6a63a723b80485e50',
234 'condition': 'dawn_node',
239 'package': 'infra/3pp/tools/go/${{platform}}',
240 'version': Var('dawn_go_version'),
246 'condition': 'dawn_node and (host_os == "mac" or host_os == "linux")',
248 'package': 'infra/3pp/tools/cmake/${{platform}}',
249 'version': Var('dawn_cmake_version'),
254 'third_party/ninja': {
257 'package': 'infra/3pp/tools/ninja/${{platform}}',
258 'version': Var('dawn_ninja_version'),
265 'buildtools/reclient': {
268 'package': Var('reclient_package') + '${{platform}}',
269 'version': Var('reclient_version'),
273 'condition': 'dawn_standalone',
276 # Misc dependencies inherited from Tint
277 'third_party/protobuf': {
278 'url': '{chromium_git}/external/github.com/protocolbuffers/protobuf.git@2b673bbb57e34fe1bd4570f726fc86b769a3a3d2',
279 'condition': 'dawn_standalone',
282 # Dependencies for PartitionAlloc.
283 # Doc: https://docs.google.com/document/d/1wz45t0alQthsIU9P7_rQcfQyqnrBMXzrOjSzdQo-V-A
284 'third_party/partition_alloc': {
285 'url': '{chromium_git}/chromium/src/base/allocator/partition_allocator.git@6f90cb04abb81942abaab7b63d34c02882208172',
286 'condition': 'dawn_standalone',
291 # Pull the compilers and system libraries for hermetic builds
293 'name': 'sysroot_x86',
295 'condition': 'dawn_standalone and checkout_linux and (checkout_x86 or checkout_x64)',
296 'action': ['python3', 'build/linux/sysroot_scripts/install-sysroot.py',
300 'name': 'sysroot_x64',
302 'condition': 'dawn_standalone and checkout_linux and checkout_x64',
303 'action': ['python3', 'build/linux/sysroot_scripts/install-sysroot.py',
307 # Update the Mac toolchain if possible, this makes builders use "hermetic XCode" which is
308 # is more consistent (only changes when rolling build/) and is cached.
309 'name': 'mac_toolchain',
311 'condition': 'dawn_standalone and checkout_mac',
312 'action': ['python3', 'build/mac_toolchain.py'],
315 # Case-insensitivity for the Win SDK. Must run before win_toolchain below.
316 'name': 'ciopfs_linux',
318 'condition': 'dawn_standalone and checkout_win and host_os == "linux"',
319 'action': [ 'download_from_google_storage',
322 '--bucket', 'chromium-browser-clang/ciopfs',
323 '-s', 'build/ciopfs.sha1',
327 # Update the Windows toolchain if necessary. Must run before 'clang' below.
328 'name': 'win_toolchain',
330 'condition': 'dawn_standalone and checkout_win',
331 'action': ['python3', 'build/vs_toolchain.py', 'update', '--force'],
334 # Note: On Win, this should run after win_toolchain, as it may use it.
337 'action': ['python3', 'tools/clang/scripts/update.py'],
338 'condition': 'dawn_standalone',
341 # This is also supposed to support the same set of platforms as 'clang'
342 # above. LLVM ToT support isn't provided at the moment.
343 'name': 'clang_tidy',
345 'condition': 'dawn_standalone and checkout_clang_tidy',
346 'action': ['python3', 'tools/clang/scripts/update.py',
347 '--package=clang-tidy'],
352 'action': ['python3', 'tools/rust/update_rust.py'],
353 'condition': 'dawn_standalone and checkout_rust',
356 # Pull rc binaries using checked-in hashes.
359 'condition': 'dawn_standalone and checkout_win and host_os == "win"',
360 'action': [ 'download_from_google_storage',
363 '--bucket', 'chromium-browser-clang/rc',
364 '-s', 'build/toolchain/win/rc/win/rc.exe.sha1',
370 'condition': 'dawn_standalone and checkout_win and host_os == "linux"',
371 'action': [ 'download_from_google_storage',
374 '--bucket', 'chromium-browser-clang/rc',
375 '-s', 'build/toolchain/win/rc/linux64/rc.sha1',
381 'condition': 'dawn_standalone and checkout_win and host_os == "mac"',
382 'action': [ 'download_from_google_storage',
385 '--bucket', 'chromium-browser-clang/rc',
386 '-s', 'build/toolchain/win/rc/mac/rc.sha1',
389 # Pull clang-format binaries using checked-in hashes.
391 'name': 'clang_format_win',
393 'condition': 'dawn_standalone and host_os == "win"',
394 'action': [ 'download_from_google_storage',
397 '--bucket', 'chromium-clang-format',
398 '-s', 'buildtools/win/clang-format.exe.sha1',
402 'name': 'clang_format_mac_x64',
404 'condition': 'dawn_standalone and host_os == "mac" and host_cpu == "x64"',
405 'action': [ 'download_from_google_storage',
408 '--bucket', 'chromium-clang-format',
409 '-s', 'buildtools/mac/clang-format.x64.sha1',
410 '-o', 'buildtools/mac/clang-format',
414 'name': 'clang_format_mac_arm64',
416 'condition': 'dawn_standalone and host_os == "mac" and host_cpu == "arm64"',
417 'action': [ 'download_from_google_storage',
420 '--bucket', 'chromium-clang-format',
421 '-s', 'buildtools/mac/clang-format.arm64.sha1',
422 '-o', 'buildtools/mac/clang-format',
426 'name': 'clang_format_linux',
428 'condition': 'dawn_standalone and host_os == "linux"',
429 'action': [ 'download_from_google_storage',
432 '--bucket', 'chromium-clang-format',
433 '-s', 'buildtools/linux64/clang-format.sha1',
436 # Update build/util/LASTCHANGE.
438 'name': 'lastchange',
440 'condition': 'dawn_standalone',
441 'action': ['python3', 'build/util/lastchange.py',
442 '-o', 'build/util/LASTCHANGE'],
444 # TODO(https://crbug.com/1180257): Use CIPD for CMake on Windows.
446 'name': 'cmake_win32',
448 'condition': 'dawn_node and host_os == "win"',
449 'action': [ 'download_from_google_storage',
453 '--bucket', 'chromium-tools',
454 Var('dawn_cmake_win32_sha1'),
455 '-o', 'tools/cmake-win32.zip'
459 'name': 'cmake_win32_extract',
461 'condition': 'dawn_node and host_os == "win"',
462 'action': [ 'python3',
463 'scripts/extract.py',
464 'tools/cmake-win32.zip',
465 'tools/cmake-win32/',
469 # Node binaries, when dawn_node is enabled
471 'name': 'node_linux64',
473 'condition': 'dawn_node and host_os == "linux"',
474 'action': [ 'download_from_google_storage',
478 '--bucket', 'chromium-nodejs/16.13.0',
479 Var('node_linux_x64_sha'),
480 '-o', 'third_party/node/node-linux-x64.tar.gz',
486 'condition': 'dawn_node and host_os == "mac"',
487 'action': [ 'download_from_google_storage',
491 '--bucket', 'chromium-nodejs/16.13.0',
492 Var('node_darwin_x64_sha'),
493 '-o', 'third_party/node/node-darwin-x64.tar.gz',
497 'name': 'node_mac_arm64',
499 'condition': 'dawn_node and host_os == "mac"',
500 'action': [ 'download_from_google_storage',
504 '--bucket', 'chromium-nodejs/16.13.0',
505 Var('node_darwin_arm64_sha'),
506 '-o', 'third_party/node/node-darwin-arm64.tar.gz',
512 'condition': 'dawn_node and host_os == "win"',
513 'action': [ 'download_from_google_storage',
516 '--bucket', 'chromium-nodejs/16.13.0',
517 Var('node_win_x64_sha'),
518 '-o', 'third_party/node/node.exe',
522 # Download remote exec cfg files
523 'name': 'fetch_reclient_cfgs',
525 'condition': 'download_remoteexec_cfg and dawn_standalone',
526 'action': ['python3',
527 'buildtools/reclient_cfgs/fetch_reclient_cfgs.py',
530 '--reproxy_cfg_template',
531 'reproxy.cfg.template',
532 '--rewrapper_cfg_project',
533 Var('rewrapper_cfg_project'),
540 'third_party/vulkan-deps',