blob: 8ea6555829dcfb78c8e0f9fd2eed5722580c33a4 [file] [log] [blame]
Jordan Baylesb5c9ece2019-02-22 15:16:44 -08001# This file is used to manage the dependencies of the Open Screen repo. It is
2# used by gclient to determine what version of each dependency to check out.
3#
4# For more information, please refer to the official documentation:
5# https://sites.google.com/a/chromium.org/dev/developers/how-tos/get-the-code
6#
7# When adding a new dependency, please update the top-level .gitignore file
8# to list the dependency's destination directory.
9
btolschb1d095b2019-02-28 10:14:26 -080010use_relative_paths = True
11
Jordan Baylesb5c9ece2019-02-22 15:16:44 -080012vars = {
Yuri Wiitala50d8abc2020-01-09 18:36:09 -080013 'boringssl_git': 'https://boringssl.googlesource.com',
14 'chromium_git': 'https://chromium.googlesource.com',
mark a. foltz3eca6052021-07-13 15:17:39 -070015 'quiche_git': 'https://quiche.googlesource.com',
Jordan Baylesb5c9ece2019-02-22 15:16:44 -080016
Jordan Bayles3e820a52020-04-30 00:57:14 -070017 # NOTE: we should only reference GitHub directly for dependencies toggled
18 # with the "not build_with_chromium" condition.
Yuri Wiitala50d8abc2020-01-09 18:36:09 -080019 'github': 'https://github.com',
btolschb1d095b2019-02-28 10:14:26 -080020
Yuri Wiitala50d8abc2020-01-09 18:36:09 -080021 # NOTE: Strangely enough, this will be overridden by any _parent_ DEPS, so
22 # in Chromium it will correctly be True.
23 'build_with_chromium': False,
Max Yakimakha4132b4c2019-04-12 15:09:44 -070024
Yuri Wiitala50d8abc2020-01-09 18:36:09 -080025 'checkout_chromium_quic_boringssl': False,
btolsch297e9f72020-02-06 00:04:01 -080026
27 # Needed to download additional clang binaries for processing coverage data
28 # (from binaries with GN arg `use_coverage=true`).
Ryan Keane3c396112020-04-28 14:24:43 -070029 #
30 # TODO(issuetracker.google.com/155195126): Change this to False and update
Jordan Bayles82a5b2d2020-11-09 11:00:51 -080031 # buildbot to call tools/download-clang-update-script.py instead.
Ryan Keane3c396112020-04-28 14:24:43 -070032 'checkout_clang_coverage_tools': True,
Jordan Bayles6e279a02021-05-27 14:24:12 -070033
34 # GN CIPD package version.
35 'gn_version': 'git_revision:39a87c0b36310bdf06b692c098f199a0d97fc810',
mark a. foltzdec3ae52021-06-01 15:54:50 -070036 'clang_format_revision': '99803d74e35962f63a775f29477882afd4d57d94',
Jordan Baylesb5c9ece2019-02-22 15:16:44 -080037}
38
39deps = {
Yuri Wiitala50d8abc2020-01-09 18:36:09 -080040 # NOTE: This commit hash here references a repository/branch that is a mirror
41 # of the commits to the buildtools directory in the Chromium repository. This
42 # should be regularly updated with the tip of the MIRRORED master branch,
43 # found here:
Jordan Bayles6e279a02021-05-27 14:24:12 -070044 # https://chromium.googlesource.com/chromium/src/buildtools/+/refs/heads/main.
Yuri Wiitala50d8abc2020-01-09 18:36:09 -080045 'buildtools': {
Jordan Bayles6e279a02021-05-27 14:24:12 -070046 'url': Var('chromium_git') + '/chromium/src/buildtools' +
47 '@' + 'fba2905150c974240f14aa5334c3e5c93f873032',
Yuri Wiitala50d8abc2020-01-09 18:36:09 -080048 'condition': 'not build_with_chromium',
49 },
mark a. foltzdec3ae52021-06-01 15:54:50 -070050 'buildtools/clang_format/script': {
51 'url': Var('chromium_git') +
52 '/external/github.com/llvm/llvm-project/clang/tools/clang-format.git' +
53 '@' + Var('clang_format_revision'),
54 'condition': 'not build_with_chromium',
55 },
Jordan Bayles6e279a02021-05-27 14:24:12 -070056 'buildtools/linux64': {
57 'packages': [
58 {
59 'package': 'gn/gn/linux-amd64',
60 'version': Var('gn_version'),
61 }
62 ],
63 'dep_type': 'cipd',
mark a. foltzdec3ae52021-06-01 15:54:50 -070064 'condition': 'host_os == "linux" and not build_with_chromium',
Jordan Bayles6e279a02021-05-27 14:24:12 -070065 },
66 'buildtools/mac': {
67 'packages': [
68 {
69 'package': 'gn/gn/mac-${{arch}}',
70 'version': Var('gn_version'),
71 }
72 ],
73 'dep_type': 'cipd',
mark a. foltzdec3ae52021-06-01 15:54:50 -070074 'condition': 'host_os == "mac" and not build_with_chromium',
Jordan Bayles6e279a02021-05-27 14:24:12 -070075 },
Yuri Wiitala50d8abc2020-01-09 18:36:09 -080076 'third_party/protobuf/src': {
77 'url': Var('chromium_git') +
78 '/external/github.com/protocolbuffers/protobuf.git' +
Jordan Baylesf3b911c2021-06-22 11:28:50 -070079 '@' + '909a0f36a10075c4b4bc70fdee2c7e32dd612a72', # version 3.17.3
Yuri Wiitala50d8abc2020-01-09 18:36:09 -080080 'condition': 'not build_with_chromium',
81 },
Jordan Baylesfa947f02019-06-05 12:52:56 -070082
John Williams8cce3492020-05-21 15:13:52 -070083 'third_party/libprotobuf-mutator/src': {
84 'url': Var('chromium_git') +
Jordan Bayles842767b2020-11-23 14:50:17 -080085 '/external/github.com/google/libprotobuf-mutator.git' +
Jordan Baylesf3b911c2021-06-22 11:28:50 -070086 '@' + '8942a9ba43d8bb196230c321d46d6a137957a719',
John Williams8cce3492020-05-21 15:13:52 -070087 'condition': 'not build_with_chromium',
88 },
89
Yuri Wiitala50d8abc2020-01-09 18:36:09 -080090 'third_party/zlib/src': {
91 'url': Var('github') +
92 '/madler/zlib.git' +
93 '@' + 'cacf7f1d4e3d44d871b605da3b647f07d718623f', # version 1.2.11
94 'condition': 'not build_with_chromium',
95 },
btolsch22fa1842019-07-16 21:40:28 -070096
Yuri Wiitala50d8abc2020-01-09 18:36:09 -080097 'third_party/jsoncpp/src': {
98 'url': Var('chromium_git') +
99 '/external/github.com/open-source-parsers/jsoncpp.git' +
Jordan Bayles0f57da12020-09-25 19:33:36 -0700100 '@' + '9059f5cad030ba11d37818847443a53918c327b1', # version 1.9.4
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800101 'condition': 'not build_with_chromium',
102 },
btolsch22fa1842019-07-16 21:40:28 -0700103
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800104 'third_party/googletest/src': {
105 'url': Var('chromium_git') +
106 '/external/github.com/google/googletest.git' +
Jordan Bayles842767b2020-11-23 14:50:17 -0800107 '@' + '36d8eb532022d3b543bf55aa8ffa01b6e9f03490',
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800108 'condition': 'not build_with_chromium',
109 },
Jordan Baylesfa947f02019-06-05 12:52:56 -0700110
Jordan Bayles74021fe2020-04-29 17:00:07 -0700111 # Note about updating BoringSSL: after changing this hash, run the update
112 # script in BoringSSL's util folder for generating build files from the
113 # <openscreen src-dir>/third_party/boringssl directory:
114 # python ./src/util/generate_build_files.py gn
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800115 'third_party/boringssl/src': {
116 'url' : Var('boringssl_git') + '/boringssl.git' +
David Benjamin940f00b2021-03-04 15:15:20 -0500117 '@' + 'f6bd54efbcafcf4625ce99b5f702dc4850b0ca50',
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800118 'condition': 'not build_with_chromium',
119 },
Jordan Baylesb5c9ece2019-02-22 15:16:44 -0800120
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800121 'third_party/chromium_quic/src': {
122 'url': Var('chromium_git') + '/openscreen/quic.git' +
Jordan Bayles8a7173a2021-06-29 03:59:26 -0700123 '@' + '79eec3fc28f5c4e1d06c6146825e31def6e3b793',
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800124 'condition': 'not build_with_chromium',
125 },
Max Yakimakha4132b4c2019-04-12 15:09:44 -0700126
mark a. foltz3eca6052021-07-13 15:17:39 -0700127 # To roll forward, use quiche_revision from chromium/src/DEPS.
128 'third_party/quiche/src': {
129 'url': Var('quiche_git') + '/quiche.git' +
130 '@' + '51f584db29001036c20db3f72f09b00b875ae625',
131 'condition': 'not build_with_chromium',
132 },
133
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800134 'third_party/tinycbor/src':
135 Var('chromium_git') + '/external/github.com/intel/tinycbor.git' +
Jordan Bayles842767b2020-11-23 14:50:17 -0800136 '@' + 'fc42a049853b802e45f49588f8148fc29d7b4d9c',
Jordan Baylesb5c9ece2019-02-22 15:16:44 -0800137
mark a. foltz9279e572020-05-05 11:25:45 -0700138 # Abseil recommends living at head. Chromium takes an Abseil snapshot
Jordan Bayles842767b2020-11-23 14:50:17 -0800139 # irregularly, every 1-2 months. It's OK for us to come out slightly ahead
140 # of Chrome's copy here.
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800141 'third_party/abseil/src': {
142 'url': Var('chromium_git') +
Jordan Bayles842767b2020-11-23 14:50:17 -0800143 '/external/github.com/abseil/abseil-cpp.git' + '@' +
144 'e19260fd7dbef881492fd73891e0be5bd4a09b95',
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800145 'condition': 'not build_with_chromium',
146 },
Jordan Bayles74021fe2020-04-29 17:00:07 -0700147
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800148 'third_party/libfuzzer/src': {
149 'url': Var('chromium_git') +
150 '/chromium/llvm-project/compiler-rt/lib/fuzzer.git' +
151 '@' + 'debe7d2d1982e540fbd6bd78604bf001753f9e74',
152 'condition': 'not build_with_chromium',
153 },
Jordan Bayles12b95e72020-12-03 09:26:47 -0800154
Jordan Bayles79c6ea22020-12-10 11:12:44 -0800155 'third_party/modp_b64': {
156 'url': Var('chromium_git') + '/chromium/src/third_party/modp_b64'
mark a. foltzf7b87d22021-10-14 15:34:44 -0700157 '@' + 'ca6144fbeb44934d474cc8030a64de21947e2550',
Jordan Bayles79c6ea22020-12-10 11:12:44 -0800158 'condition': 'not build_with_chromium',
159 },
160
Jordan Bayles12b95e72020-12-03 09:26:47 -0800161 'third_party/valijson/src': {
162 'url': Var('github') + '/tristanpenman/valijson.git' +
163 '@' + 'cf648930313655b19dc07ebae2f9c3fc37966a33', # Tip-of-tree
Jordan Bayles79c6ea22020-12-10 11:12:44 -0800164 'condition': 'not build_with_chromium'
Jordan Bayles12b95e72020-12-03 09:26:47 -0800165 }
Jordan Baylesb5c9ece2019-02-22 15:16:44 -0800166}
btolschb1d095b2019-02-28 10:14:26 -0800167
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800168hooks = [
169 {
170 'name': 'clang_update_script',
171 'pattern': '.',
172 'condition': 'not build_with_chromium',
mark a. foltz3ea21022021-10-29 11:09:28 -0700173 'action': [ 'tools/download-clang-update-script.py',
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800174 '--output', 'tools/clang/scripts/update.py' ],
175 # NOTE: This file appears in .gitignore, as it is not a part of the
176 # openscreen repo.
177 },
Jordan Bayles82a5b2d2020-11-09 11:00:51 -0800178 {
179 'name': 'yajsv_update_script',
180 'pattern': '.',
181 'condition': 'not build_with_chromium',
mark a. foltz3ea21022021-10-29 11:09:28 -0700182 'action': [ 'tools/download-yajsv.py' ],
Jordan Bayles82a5b2d2020-11-09 11:00:51 -0800183 },
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800184 {
185 'name': 'update_clang',
186 'pattern': '.',
187 'condition': 'not build_with_chromium',
Hans Wennborg6efb5b92021-10-29 10:51:38 +0200188 'action': [ 'python3', 'tools/clang/scripts/update.py' ],
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800189 },
190 {
btolsch297e9f72020-02-06 00:04:01 -0800191 'name': 'clang_coverage_tools',
192 'pattern': '.',
193 'condition': 'not build_with_chromium and checkout_clang_coverage_tools',
Hans Wennborg6efb5b92021-10-29 10:51:38 +0200194 'action': ['python3', 'tools/clang/scripts/update.py',
btolsch297e9f72020-02-06 00:04:01 -0800195 '--package=coverage_tools'],
196 },
197 {
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800198 'name': 'clang_format_linux64',
199 'pattern': '.',
200 'action': [ 'download_from_google_storage.py', '--no_resume', '--no_auth',
201 '--bucket', 'chromium-clang-format',
202 '-s', 'buildtools/linux64/clang-format.sha1' ],
203 'condition': 'host_os == "linux" and not build_with_chromium',
204 },
205 {
206 'name': 'clang_format_mac',
207 'pattern': '.',
208 'action': [ 'download_from_google_storage.py', '--no_resume', '--no_auth',
209 '--bucket', 'chromium-clang-format',
210 '-s', 'buildtools/mac/clang-format.sha1' ],
211 'condition': 'host_os == "mac" and not build_with_chromium',
212 },
213]
214
btolschb1d095b2019-02-28 10:14:26 -0800215recursedeps = [
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800216 'third_party/chromium_quic/src',
Jordan Bayles12b95e72020-12-03 09:26:47 -0800217 'cast',
btolschb1d095b2019-02-28 10:14:26 -0800218]
btolsch9ba23712019-04-18 16:36:55 -0700219
220include_rules = [
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800221 '+util',
222 '+platform/api',
223 '+platform/base',
224 '+platform/test',
225 '+testing/util',
226 '+third_party',
btolsch9ba23712019-04-18 16:36:55 -0700227
mark a. foltzf9715c52021-07-20 17:00:33 -0700228 # Inter-module dependencies must be through public APIs.
229 '-discovery',
230 '+discovery/common',
231 '+discovery/dnssd/public',
232 '+discovery/mdns/public',
233 '+discovery/public',
234
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800235 # Don't include abseil from the root so the path can change via include_dirs
236 # rules when in Chromium.
237 '-third_party/abseil',
btolsch9ba23712019-04-18 16:36:55 -0700238
mark a. foltz8c11e262020-07-22 14:29:37 -0700239 # Abseil allowed headers.
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800240 '+absl/algorithm/container.h',
241 '+absl/base/thread_annotations.h',
242 '+absl/hash/hash.h',
Ryan Keane492f4862020-06-10 10:03:39 -0700243 '+absl/hash/hash_testing.h',
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800244 '+absl/strings/ascii.h',
245 '+absl/strings/match.h',
246 '+absl/strings/numbers.h',
247 '+absl/strings/str_cat.h',
248 '+absl/strings/str_join.h',
Ryan Keane7ff43172020-01-14 14:16:27 -0800249 '+absl/strings/str_replace.h',
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800250 '+absl/strings/str_split.h',
251 '+absl/strings/string_view.h',
252 '+absl/strings/substitute.h',
253 '+absl/types/optional.h',
254 '+absl/types/span.h',
255 '+absl/types/variant.h',
Jordan Bayles2d01f172019-06-07 11:11:50 -0700256
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800257 # Similar to abseil, don't include boringssl using root path. Instead,
258 # explicitly allow 'openssl' where needed.
259 '-third_party/boringssl',
btolschaaad6a52019-08-05 14:05:39 -0700260
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800261 # Test framework includes.
262 "-third_party/googletest",
263 "+gtest",
264 "+gmock",
btolsch9ba23712019-04-18 16:36:55 -0700265]
266
267skip_child_includes = [
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800268 'third_party/chromium_quic',
btolsch9ba23712019-04-18 16:36:55 -0700269]