blob: 3d08537248da093f1139915b831b21ead440acad [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
dan sinclair5d744202024-10-29 20:37:31 +000024 'dawn_ninja_version': 'version:3@1.12.1.chromium.4',
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
Loko Kung970b0d22024-06-01 03:26:40 +000056 'reclient_version': 're_client_version:0.143.0.518e369-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.
Antonio Maiorano762198b2024-03-01 01:06:01 +000060 'SUBMODULE_MIGRATION': 'True',
61
Joanna Wangd486fa32024-08-01 18:02:23 +000062 'fetch_cmake': False,
63
64 # condition to allowlist deps to be synced in Cider. Allowlisting is needed
65 # because not all deps are compatible with Cider. Once we migrate everything
66 # to be compatible we can get rid of this allowlisting mecahnism and remove
67 # this condition. Tracking bug for removing this condition: b/349365433
68 'non_git_source': 'True',
Corentin Wallez21a23852018-07-31 18:50:03 +020069}
70
71deps = {
Corentin Wallez1a0596d2018-09-10 15:16:10 +020072 'buildtools': {
David Neto15893082024-07-04 12:03:53 +000073 'url': '{chromium_git}/chromium/src/buildtools@9cac81256beb5d4d36c8801afeae38fea34b8486',
Corentin Wallez21a23852018-07-31 18:50:03 +020074 'condition': 'dawn_standalone',
75 },
Loko Kung2d988ce2023-05-25 23:28:34 +000076 'third_party/clang-format/script': {
Arthur Sonzogni3aaa0a32024-05-31 14:01:04 +000077 'url': '{chromium_git}/external/github.com/llvm/llvm-project/clang/tools/clang-format.git@95c834f3753e65ce6daa74e345c879566c1491d0',
Corentin Wallez60ca94b2021-03-24 16:22:32 +000078 'condition': 'dawn_standalone',
79 },
Corentin Wallez60ca94b2021-03-24 16:22:32 +000080 'buildtools/linux64': {
81 'packages': [{
82 'package': 'gn/gn/linux-amd64',
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 == "linux"',
87 },
88 'buildtools/mac': {
89 'packages': [{
90 'package': 'gn/gn/mac-${{arch}}',
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 == "mac"',
95 },
96 'buildtools/win': {
97 'packages': [{
98 'package': 'gn/gn/windows-amd64',
Corentin Wallez88d5e072021-12-13 15:24:55 +000099 'version': Var('dawn_gn_version'),
Corentin Wallez60ca94b2021-03-24 16:22:32 +0000100 }],
101 'dep_type': 'cipd',
102 'condition': 'dawn_standalone and host_os == "win"',
103 },
104
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000105 'third_party/depot_tools': {
Dawn Autoroller6dd31e22024-10-29 19:45:44 +0000106 'url': '{chromium_git}/chromium/tools/depot_tools.git@1b58dc68659445b1d97d8341f8158be25eab4957',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000107 'condition': 'dawn_standalone',
108 },
109
Joanna Wangff5d8b52023-08-02 16:35:08 +0000110 'third_party/libc++/src': {
David Neto15893082024-07-04 12:03:53 +0000111 'url': '{chromium_git}/external/github.com/llvm/llvm-project/libcxx.git@450ae0d29766e87ea12148e8c6c3352053f78e15',
Joanna Wange7e54c02023-07-25 17:59:41 +0000112 'condition': 'dawn_standalone',
113 },
114
Joanna Wangff5d8b52023-08-02 16:35:08 +0000115 'third_party/libc++abi/src': {
David Neto03fe3fd2024-07-03 13:38:35 +0000116 'url': '{chromium_git}/external/github.com/llvm/llvm-project/libcxxabi.git@e5b130d5dc3058457ea0658a55ae6bb968f75f0e',
Joanna Wange7e54c02023-07-25 17:59:41 +0000117 'condition': 'dawn_standalone',
118 },
119
Jiawei Shao997865f2024-10-25 02:26:57 +0000120 # Required by //build on Linux
121 'third_party/libdrm/src': {
122 'url': '{chromium_git}/chromiumos/third_party/libdrm.git@ad78bb591d02162d3b90890aa4d0a238b2a37cde',
123 'condition': 'dawn_standalone and host_os == "linux"',
124 },
125
danakj4090b7d2023-10-24 17:49:01 +0000126 # Dependencies required to use GN, Clang, and Rust in standalone.
127 # The //build, //tools/clang, and //tools/rust deps should all be updated
128 # in unison, as there are dependencies between them.
129 'build': {
Jiawei Shao997865f2024-10-25 02:26:57 +0000130 'url': '{chromium_git}/chromium/src/build@9d5c32282de17517d92763af2d11dbeb1f6539aa',
Corentin Wallez21a23852018-07-31 18:50:03 +0200131 'condition': 'dawn_standalone',
132 },
danakj4090b7d2023-10-24 17:49:01 +0000133 'tools/clang': {
Jiawei Shao997865f2024-10-25 02:26:57 +0000134 'url': '{chromium_git}/chromium/src/tools/clang@53554bf3da41153f2e01f9ff234c194c156b7a93',
danakj4090b7d2023-10-24 17:49:01 +0000135 'condition': 'dawn_standalone',
136 },
137 'tools/rust': {
Jiawei Shao997865f2024-10-25 02:26:57 +0000138 'url': '{chromium_git}/chromium/src/tools/rust@ed0fe5c0e067bd64ab43eb7457e71680a81bd8e3',
danakj4090b7d2023-10-24 17:49:01 +0000139 'condition': 'dawn_standalone and checkout_rust',
140 },
Kai Ninomiyaf526d772020-04-06 22:27:02 +0000141 'tools/clang/dsymutil': {
Corentin Wallez60ca94b2021-03-24 16:22:32 +0000142 'packages': [{
143 'package': 'chromium/llvm-build-tools/dsymutil',
144 'version': 'M56jPzDv1620Rnm__jTMYS62Zi8rxHVq7yw0qeBFEgkC',
145 }],
Corentin Wallez2015b2f2021-03-04 17:37:55 +0000146 'condition': 'dawn_standalone and (checkout_mac or checkout_ios)',
Kai Ninomiyaf526d772020-04-06 22:27:02 +0000147 'dep_type': 'cipd',
148 },
Corentin Wallez21a23852018-07-31 18:50:03 +0200149
Antonio Maioranoaf46ea52024-05-03 19:36:58 +0000150 # Linux sysroots for hermetic builds instead of relying on whatever is
151 # available from the system used for compilation. Only applicable to
152 # dawn_standalone since Chromium has its own sysroot copy.
153 'build/linux/debian_bullseye_armhf-sysroot': {
154 'bucket': 'chrome-linux-sysroot',
155 'condition': 'dawn_standalone and checkout_linux and checkout_arm',
156 'dep_type': 'gcs',
157 'objects': [
158 {
159 'object_name': 'e1ace9eea7f5f8906a5de665022abb745efb47ce4931ae774b58005adaf907e9',
160 'sha256sum': 'e1ace9eea7f5f8906a5de665022abb745efb47ce4931ae774b58005adaf907e9',
161 'size_bytes': 96825360,
162 'generation': 1714159610727506,
163 },
164 ],
165 },
166 'build/linux/debian_bullseye_arm64-sysroot': {
167 'bucket': 'chrome-linux-sysroot',
168 'condition': 'dawn_standalone and checkout_linux and checkout_arm64',
169 'dep_type': 'gcs',
170 'objects': [
171 {
172 'object_name': 'd303cf3faf7804c9dd24c9b6b167d0345d41d7fe4bfb7d34add3ab342f6a236c',
173 'sha256sum': 'd303cf3faf7804c9dd24c9b6b167d0345d41d7fe4bfb7d34add3ab342f6a236c',
174 'size_bytes': 103556332,
175 'generation': 1714159596952688,
176 },
177 ],
178 },
179 'build/linux/debian_bullseye_i386-sysroot': {
180 'bucket': 'chrome-linux-sysroot',
181 'condition': 'dawn_standalone and checkout_linux and (checkout_x86 or checkout_x64)',
182 'dep_type': 'gcs',
183 'objects': [
184 {
185 'object_name': '4300851707ad38b204e7f4912950c05ad51da0251ecc4e410de9b9fb94f7decf',
186 'sha256sum': '4300851707ad38b204e7f4912950c05ad51da0251ecc4e410de9b9fb94f7decf',
187 'size_bytes': 116515924,
188 'generation': 1714159579525878,
189 },
190 ],
191 },
192 'build/linux/debian_bullseye_mipsel-sysroot': {
193 'bucket': 'chrome-linux-sysroot',
194 'condition': 'dawn_standalone and checkout_linux and checkout_mips',
195 'dep_type': 'gcs',
196 'objects': [
197 {
198 'object_name': 'cc3202718a58541488e79b0333ce936a32227e07228f6b3c122d99ee45f83270',
199 'sha256sum': 'cc3202718a58541488e79b0333ce936a32227e07228f6b3c122d99ee45f83270',
200 'size_bytes': 93412776,
201 'generation': 1714159559897107,
202 },
203 ],
204 },
205 'build/linux/debian_bullseye_mips64el-sysroot': {
206 'bucket': 'chrome-linux-sysroot',
207 'condition': 'dawn_standalone and checkout_linux and checkout_mips64',
208 'dep_type': 'gcs',
209 'objects': [
210 {
211 'object_name': 'ee94d723b36d1e643820fe7ee2a8f45b3664b4c5d3c3379ebab39e474a2c9f86',
212 'sha256sum': 'ee94d723b36d1e643820fe7ee2a8f45b3664b4c5d3c3379ebab39e474a2c9f86',
213 'size_bytes': 97911708,
214 'generation': 1714159538956875,
215 },
216 ],
217 },
218 'build/linux/debian_bullseye_amd64-sysroot': {
219 'bucket': 'chrome-linux-sysroot',
220 'condition': 'dawn_standalone and checkout_linux and checkout_x64',
221 'dep_type': 'gcs',
222 'objects': [
223 {
224 'object_name': '5df5be9357b425cdd70d92d4697d07e7d55d7a923f037c22dc80a78e85842d2c',
225 'sha256sum': '5df5be9357b425cdd70d92d4697d07e7d55d7a923f037c22dc80a78e85842d2c',
226 'size_bytes': 123084324,
227 'generation': 1714159395960299,
228 },
229 ],
230 },
231
232
Corentin Wallez649e2fe2018-08-03 15:57:43 +0200233 # Testing, GTest and GMock
Corentin Wallez1a0596d2018-09-10 15:16:10 +0200234 'testing': {
Takuto Ikuta6cdf3a12024-06-13 08:26:19 +0000235 'url': '{chromium_git}/chromium/src/testing@1bd0da6657e330cf26ed0702b3f456393587ad7c',
Ben Claytonb7bd8d82023-09-28 14:10:51 +0000236 'condition': 'dawn_standalone',
237 },
238 'third_party/libFuzzer/src': {
239 'url': '{chromium_git}/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git' + '@' + '26cc39e59b2bf5cbc20486296248a842c536878d',
Corentin Wallez21a23852018-07-31 18:50:03 +0200240 'condition': 'dawn_standalone',
241 },
Corentin Wallez1a0596d2018-09-10 15:16:10 +0200242 'third_party/googletest': {
Austin Enga0e96b52023-02-18 00:39:01 +0000243 'url': '{chromium_git}/external/github.com/google/googletest@7a7231c442484be389fdf01594310349ca0e42a8',
Corentin Wallezd5203662022-01-05 15:54:08 +0000244 'condition': 'dawn_standalone',
245 },
246 # This is a dependency of //testing
247 'third_party/catapult': {
Ho Cheungf87b36a2024-08-07 15:31:34 +0000248 'url': '{chromium_git}/catapult.git@b9db9201194440dc91d7f73d4c939a8488994f60',
Corentin Wallez649e2fe2018-08-03 15:57:43 +0200249 'condition': 'dawn_standalone',
250 },
Austin Eng6a7bba52023-04-17 18:11:51 +0000251 'third_party/google_benchmark/src': {
Jiawei Shao997865f2024-10-25 02:26:57 +0000252 'url': '{chromium_git}/external/github.com/google/benchmark.git' + '@' + '761305ec3b33abf30e08d50eb829e19a802581cc',
Austin Eng6a7bba52023-04-17 18:11:51 +0000253 'condition': 'dawn_standalone',
254 },
Corentin Wallez21a23852018-07-31 18:50:03 +0200255
Corentin Wallez3bb0bb92018-08-13 17:47:44 +0200256 # Jinja2 and MarkupSafe for the code generator
Corentin Wallez1a0596d2018-09-10 15:16:10 +0200257 'third_party/jinja2': {
Corentin Wallezd2c27be2024-01-09 12:37:34 +0000258 'url': '{chromium_git}/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07',
Corentin Wallez3bb0bb92018-08-13 17:47:44 +0200259 'condition': 'dawn_standalone',
260 },
Corentin Wallez1a0596d2018-09-10 15:16:10 +0200261 'third_party/markupsafe': {
Corentin Wallezd2c27be2024-01-09 12:37:34 +0000262 'url': '{chromium_git}/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794',
Corentin Wallez3bb0bb92018-08-13 17:47:44 +0200263 'condition': 'dawn_standalone',
264 },
265
Corentin Wallez4d7d1692018-08-13 08:23:27 +0200266 # GLFW for tests and samples
Corentin Wallez1a0596d2018-09-10 15:16:10 +0200267 'third_party/glfw': {
Corentin Wallez82d0a2e2024-05-24 14:40:48 +0000268 'url': '{chromium_git}/external/github.com/glfw/glfw@b35641f4a3c62aa86a0b3c983d163bc0fe36026d',
Corentin Wallez4d7d1692018-08-13 08:23:27 +0200269 },
270
Stephen White77fcdf72021-01-11 15:52:12 +0000271 'third_party/vulkan_memory_allocator': {
Corentin Walleze7badbc2024-01-10 19:19:41 +0000272 'url': '{chromium_git}/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@52dc220fb326e6ae132b7f262133b37b0dc334a3',
Stephen White77fcdf72021-01-11 15:52:12 +0000273 'condition': 'dawn_standalone',
274 },
275
276 'third_party/angle': {
Dawn Autoroller5049b8f2024-11-05 13:32:08 +0000277 'url': '{chromium_git}/angle/angle@5a9f361c53bdf98f2faf4288f625b1c1b791fcdf',
Stephen White77fcdf72021-01-11 15:52:12 +0000278 'condition': 'dawn_standalone',
279 },
280
Corentin Wallez74cebd62019-11-26 18:21:51 +0000281 'third_party/swiftshader': {
Dawn Autorollerdc5b9b22024-11-05 17:50:42 +0000282 'url': '{swiftshader_git}/SwiftShader@76855a9baecc97fa144ce70d7ae43a9f878e14c8',
Corentin Wallez74cebd62019-11-26 18:21:51 +0000283 'condition': 'dawn_standalone',
284 },
285
Stephen Whitef1fa60b2021-01-06 17:41:50 +0000286 'third_party/vulkan-deps': {
Dawn Autorollerb1a84c72024-11-04 07:53:46 +0000287 'url': '{chromium_git}/vulkan-deps@155bbe2e14290da3b5fadd68d67c298fcb449a9f',
Corentin Wallez1fdd0592021-04-02 18:04:27 +0000288 'condition': 'dawn_standalone',
Stephen White77fcdf72021-01-11 15:52:12 +0000289 },
290
Yuly Novikov143523a2024-05-23 15:59:58 +0000291 'third_party/glslang/src': {
Dawn Autorollerdd5ee762024-10-31 09:19:34 +0000292 'url': '{chromium_git}/external/github.com/KhronosGroup/glslang@d81aeef9f82050bd5940ce1c475d8316ad41d747',
Yuly Novikov143523a2024-05-23 15:59:58 +0000293 'condition': 'dawn_standalone',
294 },
295
296 'third_party/spirv-cross/src': {
297 'url': '{chromium_git}/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3',
298 'condition': 'dawn_standalone',
299 },
300
301 'third_party/spirv-headers/src': {
Dawn Autorollerdd5ee762024-10-31 09:19:34 +0000302 'url': '{chromium_git}/external/github.com/KhronosGroup/SPIRV-Headers@cb6b2c32dbfc3257c1e9142a116fe9ee3d9b80a2',
Yuly Novikov143523a2024-05-23 15:59:58 +0000303 'condition': 'dawn_standalone',
304 },
305
306 'third_party/spirv-tools/src': {
Dawn Autorollerdf77ad02024-11-02 13:00:27 +0000307 'url': '{chromium_git}/external/github.com/KhronosGroup/SPIRV-Tools@9aaa2601400a29ce39ce1111aa9f790e5c9d4c1b',
Yuly Novikov143523a2024-05-23 15:59:58 +0000308 'condition': 'dawn_standalone',
309 },
310
311 'third_party/vulkan-headers/src': {
Dawn Autorollerdf77ad02024-11-02 13:00:27 +0000312 'url': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-Headers@cbcad3c0587dddc768d76641ea00f5c45ab5a278',
Yuly Novikov143523a2024-05-23 15:59:58 +0000313 'condition': 'dawn_standalone',
314 },
315
316 'third_party/vulkan-loader/src': {
Dawn Autorollerdd5ee762024-10-31 09:19:34 +0000317 'url': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-Loader@9276d73f29651c92402f0f0389108d69bb51b9ca',
Yuly Novikov143523a2024-05-23 15:59:58 +0000318 'condition': 'dawn_standalone',
319 },
320
321 'third_party/vulkan-tools/src': {
Dawn Autorollere3a9e612024-10-29 05:09:21 +0000322 'url': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-Tools@e94085e2167e33b6b18474da24ff18f46bc56976',
Yuly Novikov143523a2024-05-23 15:59:58 +0000323 'condition': 'dawn_standalone',
324 },
325
326 'third_party/vulkan-utility-libraries/src': {
Dawn Autorollere3a9e612024-10-29 05:09:21 +0000327 'url': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@9123b8c04b378c1b81899314e3060a80f255a24b',
Yuly Novikov143523a2024-05-23 15:59:58 +0000328 'condition': 'dawn_standalone',
329 },
330
331 'third_party/vulkan-validation-layers/src': {
Dawn Autorollerb1a84c72024-11-04 07:53:46 +0000332 'url': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-ValidationLayers@7d88badaa519c125a2a7a4c041634acb9baba52d',
Yuly Novikov143523a2024-05-23 15:59:58 +0000333 'condition': 'dawn_standalone',
334 },
335
Stephen White77fcdf72021-01-11 15:52:12 +0000336 'third_party/zlib': {
Arthur Sonzogni3aaa0a32024-05-31 14:01:04 +0000337 'url': '{chromium_git}/chromium/src/third_party/zlib@209717dd69cd62f24cbacc4758261ae2dd78cfac',
Stephen Whitef1fa60b2021-01-06 17:41:50 +0000338 'condition': 'dawn_standalone',
339 },
Brandon Jonesa04663c2021-09-23 20:36:03 +0000340
341 'third_party/abseil-cpp': {
Corentin Wallez86e10a62024-05-20 13:48:38 +0000342 'url': '{chromium_git}/chromium/src/third_party/abseil-cpp@f81f6c011baf9b0132a5594c034fe0060820711d',
Brandon Jonesa04663c2021-09-23 20:36:03 +0000343 'condition': 'dawn_standalone',
344 },
Ben Claytondc890d62021-09-27 22:55:39 +0000345
Antonio Maioranoad5e1082023-06-22 20:45:54 +0000346 'third_party/dxc': {
Dawn Autoroller7ca9e822024-11-01 19:51:48 +0000347 'url': '{chromium_git}/external/github.com/microsoft/DirectXShaderCompiler@ac36a797d3470e8ee906b98457a59270d01db30d',
Antonio Maioranoad5e1082023-06-22 20:45:54 +0000348 },
Antonio Maiorano83bdc7f2023-08-21 15:29:35 +0000349
Antonio Maioranoad5e1082023-06-22 20:45:54 +0000350 'third_party/dxheaders': {
351 # The non-Windows build of DXC depends on DirectX-Headers, and at a specific commit (not ToT)
352 'url': '{chromium_git}/external/github.com/microsoft/DirectX-Headers@980971e835876dc0cde415e8f9bc646e64667bf7',
Austin Engc02f1432023-07-05 22:38:39 +0000353 'condition': 'host_os != "win"',
Antonio Maioranoad5e1082023-06-22 20:45:54 +0000354 },
355
Austin Engb94ef822024-05-02 02:37:35 +0000356 'third_party/webgpu-headers': {
Ho Cheung084cc582024-05-22 15:51:26 +0000357 'url': '{chromium_git}/external/github.com/webgpu-native/webgpu-headers@8049c324dc7b3c09dc96ea04cb02860f272c8686',
Austin Engb94ef822024-05-02 02:37:35 +0000358 },
359
Antonio Maiorano83bdc7f2023-08-21 15:29:35 +0000360 'third_party/khronos/OpenGL-Registry': {
361 'url': '{chromium_git}/external/github.com/KhronosGroup/OpenGL-Registry@5bae8738b23d06968e7c3a41308568120943ae77',
362 },
363
364 'third_party/khronos/EGL-Registry': {
365 'url': '{chromium_git}/external/github.com/KhronosGroup/EGL-Registry@7dea2ed79187cd13f76183c4b9100159b9e3e071',
366 },
367
Kai Ninomiya5c780d72022-03-17 21:43:17 +0000368 # WebGPU CTS - not used directly by Dawn, only transitively by Chromium.
369 'third_party/webgpu-cts': {
Loko Kungf8720692024-11-01 21:55:59 +0000370 'url': '{chromium_git}/external/github.com/gpuweb/cts@8690defa74b6975c10e85c113f121d4b2a3f2564',
Kai Ninomiya5c780d72022-03-17 21:43:17 +0000371 'condition': 'build_with_chromium',
372 },
373
Ben Clayton6f8ff742022-03-28 19:55:42 +0000374 # Dependencies required to build / run Dawn NodeJS bindings
Ben Claytondc890d62021-09-27 22:55:39 +0000375 'third_party/node-api-headers': {
Corentin Wallezbcfe0662024-05-20 13:57:04 +0000376 'url': '{github_git}/nodejs/node-api-headers.git@d5cfe19da8b974ca35764dd1c73b91d57cd3c4ce',
Ben Claytondc890d62021-09-27 22:55:39 +0000377 'condition': 'dawn_node',
378 },
379 'third_party/node-addon-api': {
Corentin Wallezbcfe0662024-05-20 13:57:04 +0000380 'url': '{github_git}/nodejs/node-addon-api.git@1e26dcb52829a74260ec262edb41fc22998669b6',
Ben Claytondc890d62021-09-27 22:55:39 +0000381 'condition': 'dawn_node',
382 },
383 'third_party/gpuweb': {
Corentin Wallez0856adf2024-11-02 02:54:22 +0000384 'url': '{github_git}/gpuweb/gpuweb.git@2629ea6a98a2b87250aa165032f6d67c04c109f9',
Ben Claytondc890d62021-09-27 22:55:39 +0000385 'condition': 'dawn_node',
386 },
Austin Eng4948c812021-10-15 14:28:32 +0000387
388 'tools/golang': {
Austin Eng4948c812021-10-15 14:28:32 +0000389 'packages': [{
390 'package': 'infra/3pp/tools/go/${{platform}}',
391 'version': Var('dawn_go_version'),
392 }],
393 'dep_type': 'cipd',
Joanna Wangd486fa32024-08-01 18:02:23 +0000394 'condition': 'non_git_source',
Austin Eng4948c812021-10-15 14:28:32 +0000395 },
396
397 'tools/cmake': {
Antonio Maiorano762198b2024-03-01 01:06:01 +0000398 'condition': '(fetch_cmake or dawn_node) and (host_os == "mac" or host_os == "linux")',
Austin Eng4948c812021-10-15 14:28:32 +0000399 'packages': [{
400 'package': 'infra/3pp/tools/cmake/${{platform}}',
401 'version': Var('dawn_cmake_version'),
402 }],
403 'dep_type': 'cipd',
404 },
Ryan Harrisone87ac762022-04-06 15:37:27 -0400405
Junji Watanabe4ad7f012022-10-03 02:48:52 +0000406 'third_party/ninja': {
407 'packages': [
408 {
409 'package': 'infra/3pp/tools/ninja/${{platform}}',
410 'version': Var('dawn_ninja_version'),
411 }
412 ],
413 'dep_type': 'cipd',
414 },
415
Ryan Harrison29fc5e92023-07-17 16:12:27 +0000416 # RBE dependencies
417 'buildtools/reclient': {
418 'packages': [
419 {
420 'package': Var('reclient_package') + '${{platform}}',
421 'version': Var('reclient_version'),
422 }
423 ],
424 'dep_type': 'cipd',
425 'condition': 'dawn_standalone',
426 },
Ryan Harrison29fc5e92023-07-17 16:12:27 +0000427
Ryan Harrisone87ac762022-04-06 15:37:27 -0400428 # Misc dependencies inherited from Tint
Ryan Harrison3374f432022-03-28 18:01:02 +0000429 'third_party/protobuf': {
Stephen Whiteb57ea722024-07-26 22:24:16 +0000430 'url': '{chromium_git}/chromium/src/third_party/protobuf@da2fe725b80ac0ba646fbf77d0ce5b4ac236f823',
Ben Claytonde2686e2023-11-16 12:39:06 +0000431 'condition': 'dawn_standalone',
432 },
433
434 'tools/protoc_wrapper': {
435 'url': '{chromium_git}/chromium/src/tools/protoc_wrapper@b5ea227bd88235ab3ccda964d5f3819c4e2d8032',
Ryan Harrisone87ac762022-04-06 15:37:27 -0400436 'condition': 'dawn_standalone',
Ryan Harrison3374f432022-03-28 18:01:02 +0000437 },
Arthur Sonzogni8b28afe2023-10-12 16:06:04 +0000438
Ben Clayton818dfde2024-05-27 22:48:41 +0000439 'third_party/libprotobuf-mutator/src': {
440 'url': '{chromium_git}/external/github.com/google/libprotobuf-mutator.git@a304ec48dcf15d942607032151f7e9ee504b5dcf',
441 'condition': 'dawn_standalone',
442 },
443
Ben Claytonf9a5b712024-03-13 17:37:33 +0000444 # Dependencies for tintd.
445 'third_party/jsoncpp': {
446 'url': '{github_git}/open-source-parsers/jsoncpp.git@69098a18b9af0c47549d9a271c054d13ca92b006',
447 'condition': 'dawn_standalone',
448 },
449
450 'third_party/langsvr': {
Gregg Tavares498879a2024-05-17 12:12:09 +0000451 'url': '{github_git}/google/langsvr.git@303c526231a90049a3e384549720f3fbd453cf66',
Ben Claytonf9a5b712024-03-13 17:37:33 +0000452 'condition': 'dawn_standalone',
453 },
454
Arthur Sonzogni8b28afe2023-10-12 16:06:04 +0000455 # Dependencies for PartitionAlloc.
456 # Doc: https://docs.google.com/document/d/1wz45t0alQthsIU9P7_rQcfQyqnrBMXzrOjSzdQo-V-A
457 'third_party/partition_alloc': {
Arthur Sonzogni322cffa2024-07-10 17:46:32 +0000458 'url': '{chromium_git}/chromium/src/base/allocator/partition_allocator.git@2e6b2efb6f435aa3dd400cb3bdcead2a601f8f9a',
Arthur Sonzogni8b28afe2023-10-12 16:06:04 +0000459 'condition': 'dawn_standalone',
460 },
Corentin Wallez21a23852018-07-31 18:50:03 +0200461}
462
463hooks = [
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000464 {
465 # Ensure that the DEPS'd "depot_tools" has its self-update capability
466 # disabled.
467 'name': 'disable_depot_tools_selfupdate',
468 'pattern': '.',
469 'condition': 'dawn_standalone',
470 'action': [
471 'python3',
472 'third_party/depot_tools/update_depot_tools_toggle.py',
473 '--disable',
474 ],
475 },
476
Corentin Wallez21a23852018-07-31 18:50:03 +0200477 # Pull the compilers and system libraries for hermetic builds
478 {
479 'name': 'sysroot_x86',
480 'pattern': '.',
Corentin Wallez2015b2f2021-03-04 17:37:55 +0000481 'condition': 'dawn_standalone and checkout_linux and (checkout_x86 or checkout_x64)',
Corentin Wallezd5203662022-01-05 15:54:08 +0000482 'action': ['python3', 'build/linux/sysroot_scripts/install-sysroot.py',
Corentin Wallez21a23852018-07-31 18:50:03 +0200483 '--arch=x86'],
484 },
485 {
486 'name': 'sysroot_x64',
487 'pattern': '.',
Corentin Wallez2015b2f2021-03-04 17:37:55 +0000488 'condition': 'dawn_standalone and checkout_linux and checkout_x64',
Corentin Wallezd5203662022-01-05 15:54:08 +0000489 'action': ['python3', 'build/linux/sysroot_scripts/install-sysroot.py',
Corentin Wallez21a23852018-07-31 18:50:03 +0200490 '--arch=x64'],
491 },
492 {
Corentin Wallezd4e7f082020-11-17 21:16:31 +0000493 # Update the Mac toolchain if possible, this makes builders use "hermetic XCode" which is
494 # is more consistent (only changes when rolling build/) and is cached.
495 'name': 'mac_toolchain',
496 'pattern': '.',
Corentin Wallez2015b2f2021-03-04 17:37:55 +0000497 'condition': 'dawn_standalone and checkout_mac',
Corentin Wallezd5203662022-01-05 15:54:08 +0000498 'action': ['python3', 'build/mac_toolchain.py'],
Corentin Wallezd4e7f082020-11-17 21:16:31 +0000499 },
500 {
Peng Huang78583a12023-02-10 13:53:31 +0000501 # Case-insensitivity for the Win SDK. Must run before win_toolchain below.
502 'name': 'ciopfs_linux',
503 'pattern': '.',
Peng Huang708a0772023-02-13 11:38:38 +0000504 'condition': 'dawn_standalone and checkout_win and host_os == "linux"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000505 'action': [ 'python3',
506 'third_party/depot_tools/download_from_google_storage.py',
Peng Huang78583a12023-02-10 13:53:31 +0000507 '--no_resume',
508 '--no_auth',
509 '--bucket', 'chromium-browser-clang/ciopfs',
510 '-s', 'build/ciopfs.sha1',
511 ]
512 },
513 {
Corentin Wallez682c44a2018-08-13 17:48:16 +0200514 # Update the Windows toolchain if necessary. Must run before 'clang' below.
Corentin Wallez21a23852018-07-31 18:50:03 +0200515 'name': 'win_toolchain',
516 'pattern': '.',
Corentin Wallez2015b2f2021-03-04 17:37:55 +0000517 'condition': 'dawn_standalone and checkout_win',
Corentin Wallezd5203662022-01-05 15:54:08 +0000518 'action': ['python3', 'build/vs_toolchain.py', 'update', '--force'],
Corentin Wallez21a23852018-07-31 18:50:03 +0200519 },
520 {
521 # Note: On Win, this should run after win_toolchain, as it may use it.
522 'name': 'clang',
523 'pattern': '.',
Corentin Wallezd5203662022-01-05 15:54:08 +0000524 'action': ['python3', 'tools/clang/scripts/update.py'],
Corentin Wallez21a23852018-07-31 18:50:03 +0200525 'condition': 'dawn_standalone',
526 },
527 {
dan sinclair93cf3462022-05-16 12:58:24 +0000528 # This is also supposed to support the same set of platforms as 'clang'
529 # above. LLVM ToT support isn't provided at the moment.
530 'name': 'clang_tidy',
531 'pattern': '.',
Corentin Wallezc4051b12022-05-17 08:21:02 +0000532 'condition': 'dawn_standalone and checkout_clang_tidy',
dan sinclair93cf3462022-05-16 12:58:24 +0000533 'action': ['python3', 'tools/clang/scripts/update.py',
534 '--package=clang-tidy'],
535 },
536 {
danakj4090b7d2023-10-24 17:49:01 +0000537 'name': 'rust',
538 'pattern': '.',
539 'action': ['python3', 'tools/rust/update_rust.py'],
540 'condition': 'dawn_standalone and checkout_rust',
541 },
542 {
Corentin Wallez21a23852018-07-31 18:50:03 +0200543 # Pull rc binaries using checked-in hashes.
544 'name': 'rc_win',
545 'pattern': '.',
Corentin Wallez2015b2f2021-03-04 17:37:55 +0000546 'condition': 'dawn_standalone and checkout_win and host_os == "win"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000547 'action': [ 'python3',
548 'third_party/depot_tools/download_from_google_storage.py',
Corentin Wallez21a23852018-07-31 18:50:03 +0200549 '--no_resume',
550 '--no_auth',
551 '--bucket', 'chromium-browser-clang/rc',
Corentin Wallez1a0596d2018-09-10 15:16:10 +0200552 '-s', 'build/toolchain/win/rc/win/rc.exe.sha1',
Corentin Wallez21a23852018-07-31 18:50:03 +0200553 ],
554 },
Peng Huang78583a12023-02-10 13:53:31 +0000555 {
556 'name': 'rc_linux',
557 'pattern': '.',
Peng Huang708a0772023-02-13 11:38:38 +0000558 'condition': 'dawn_standalone and checkout_win and host_os == "linux"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000559 'action': [ 'python3',
560 'third_party/depot_tools/download_from_google_storage.py',
Peng Huang78583a12023-02-10 13:53:31 +0000561 '--no_resume',
562 '--no_auth',
563 '--bucket', 'chromium-browser-clang/rc',
564 '-s', 'build/toolchain/win/rc/linux64/rc.sha1',
Antonio Maioranoef9da422023-09-21 17:53:34 +0000565 ],
566 },
567 {
568 'name': 'rc_mac',
569 'pattern': '.',
570 'condition': 'dawn_standalone and checkout_win and host_os == "mac"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000571 'action': [ 'python3',
572 'third_party/depot_tools/download_from_google_storage.py',
Antonio Maioranoef9da422023-09-21 17:53:34 +0000573 '--no_resume',
574 '--no_auth',
575 '--bucket', 'chromium-browser-clang/rc',
576 '-s', 'build/toolchain/win/rc/mac/rc.sha1',
577 ],
Peng Huang78583a12023-02-10 13:53:31 +0000578 },
Corentin Wallez15d8cb72018-11-19 10:13:31 +0000579 # Update build/util/LASTCHANGE.
580 {
581 'name': 'lastchange',
582 'pattern': '.',
Jiajie Hu2ffc55a2020-07-01 05:08:36 +0000583 'condition': 'dawn_standalone',
Corentin Wallezd5203662022-01-05 15:54:08 +0000584 'action': ['python3', 'build/util/lastchange.py',
Corentin Wallez15d8cb72018-11-19 10:13:31 +0000585 '-o', 'build/util/LASTCHANGE'],
586 },
Austin Eng4948c812021-10-15 14:28:32 +0000587 # TODO(https://crbug.com/1180257): Use CIPD for CMake on Windows.
588 {
589 'name': 'cmake_win32',
590 'pattern': '.',
Antonio Maiorano762198b2024-03-01 01:06:01 +0000591 'condition': '(fetch_cmake or dawn_node) and host_os == "win"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000592 'action': [ 'python3',
593 'third_party/depot_tools/download_from_google_storage.py',
Austin Eng4948c812021-10-15 14:28:32 +0000594 '--no_resume',
595 '--platform=win32',
596 '--no_auth',
597 '--bucket', 'chromium-tools',
598 Var('dawn_cmake_win32_sha1'),
599 '-o', 'tools/cmake-win32.zip'
600 ],
601 },
602 {
603 'name': 'cmake_win32_extract',
604 'pattern': '.',
Antonio Maiorano762198b2024-03-01 01:06:01 +0000605 'condition': '(fetch_cmake or dawn_node) and host_os == "win"',
Corentin Wallezd5203662022-01-05 15:54:08 +0000606 'action': [ 'python3',
Austin Eng4948c812021-10-15 14:28:32 +0000607 'scripts/extract.py',
608 'tools/cmake-win32.zip',
609 'tools/cmake-win32/',
610 ],
611 },
Ben Clayton6f8ff742022-03-28 19:55:42 +0000612
613 # Node binaries, when dawn_node is enabled
614 {
615 'name': 'node_linux64',
616 'pattern': '.',
617 'condition': 'dawn_node and host_os == "linux"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000618 'action': [ 'python3',
619 'third_party/depot_tools/download_from_google_storage.py',
Ben Clayton6f8ff742022-03-28 19:55:42 +0000620 '--no_resume',
621 '--extract',
622 '--no_auth',
Ben Clayton87a190e2024-01-23 15:17:03 +0000623 '--bucket', 'chromium-nodejs/20.11.0',
Ben Clayton6f8ff742022-03-28 19:55:42 +0000624 Var('node_linux_x64_sha'),
625 '-o', 'third_party/node/node-linux-x64.tar.gz',
626 ],
627 },
628 {
629 'name': 'node_mac',
630 'pattern': '.',
631 'condition': 'dawn_node and host_os == "mac"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000632 'action': [ 'python3',
633 'third_party/depot_tools/download_from_google_storage.py',
Ben Clayton6f8ff742022-03-28 19:55:42 +0000634 '--no_resume',
635 '--extract',
636 '--no_auth',
Ben Clayton87a190e2024-01-23 15:17:03 +0000637 '--bucket', 'chromium-nodejs/20.11.0',
Ben Clayton6f8ff742022-03-28 19:55:42 +0000638 Var('node_darwin_x64_sha'),
639 '-o', 'third_party/node/node-darwin-x64.tar.gz',
640 ],
641 },
642 {
643 'name': 'node_mac_arm64',
644 'pattern': '.',
645 'condition': 'dawn_node and host_os == "mac"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000646 'action': [ 'python3',
647 'third_party/depot_tools/download_from_google_storage.py',
Ben Clayton6f8ff742022-03-28 19:55:42 +0000648 '--no_resume',
649 '--extract',
650 '--no_auth',
Ben Clayton87a190e2024-01-23 15:17:03 +0000651 '--bucket', 'chromium-nodejs/20.11.0',
Ben Clayton6f8ff742022-03-28 19:55:42 +0000652 Var('node_darwin_arm64_sha'),
653 '-o', 'third_party/node/node-darwin-arm64.tar.gz',
654 ],
655 },
656 {
657 'name': 'node_win',
658 'pattern': '.',
659 'condition': 'dawn_node and host_os == "win"',
Antonio Maioranoc4fe82d2024-02-22 00:51:41 +0000660 'action': [ 'python3',
661 'third_party/depot_tools/download_from_google_storage.py',
Ben Clayton6f8ff742022-03-28 19:55:42 +0000662 '--no_resume',
663 '--no_auth',
Ben Clayton87a190e2024-01-23 15:17:03 +0000664 '--bucket', 'chromium-nodejs/20.11.0',
Ben Clayton6f8ff742022-03-28 19:55:42 +0000665 Var('node_win_x64_sha'),
666 '-o', 'third_party/node/node.exe',
667 ],
668 },
Ryan Harrisonce158be2023-07-20 17:06:56 +0000669 {
670 # Download remote exec cfg files
671 'name': 'fetch_reclient_cfgs',
672 'pattern': '.',
Austin Engd6c4f662023-07-21 01:00:22 +0000673 'condition': 'download_remoteexec_cfg and dawn_standalone',
Ryan Harrisonce158be2023-07-20 17:06:56 +0000674 'action': ['python3',
675 'buildtools/reclient_cfgs/fetch_reclient_cfgs.py',
676 '--rbe_instance',
677 Var('rbe_instance'),
678 '--reproxy_cfg_template',
679 'reproxy.cfg.template',
680 '--rewrapper_cfg_project',
681 Var('rewrapper_cfg_project'),
682 '--quiet',
Ryan Harrisonce158be2023-07-20 17:06:56 +0000683 ],
684 },
Corentin Wallezca81bd32018-09-03 11:55:58 +0200685]
Josip Sokcevic57058302024-05-31 07:13:26 +0000686
687recursedeps = [
688 'buildtools',
689]