xref: /aosp_15_r20/external/openscreen/DEPS (revision 3f982cf4871df8771c9d4abe6e9a6f8d829b2736)
1# 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
10use_relative_paths = True
11
12vars = {
13  'boringssl_git': 'https://boringssl.googlesource.com',
14  'chromium_git': 'https://chromium.googlesource.com',
15  'quiche_git': 'https://quiche.googlesource.com',
16  'aomedia_git': 'https://aomedia.googlesource.com',
17
18  # NOTE: we should only reference GitHub directly for dependencies toggled
19  # with the "not build_with_chromium" condition.
20  'github': 'https://github.com',
21
22  # NOTE: Strangely enough, this will be overridden by any _parent_ DEPS, so
23  # in Chromium it will correctly be True.
24  'build_with_chromium': False,
25
26  'checkout_chromium_quic_boringssl': False,
27
28  # Needed to download additional clang binaries for processing coverage data
29  # (from binaries with GN arg `use_coverage=true`).
30  #
31  # TODO(issuetracker.google.com/155195126): Change this to False and update
32  # buildbot to call tools/download-clang-update-script.py instead.
33  'checkout_clang_coverage_tools': True,
34
35  # GN CIPD package version.
36  'gn_version': 'git_revision:39a87c0b36310bdf06b692c098f199a0d97fc810',
37  'clang_format_revision':    '99803d74e35962f63a775f29477882afd4d57d94',
38}
39
40deps = {
41  # NOTE: This commit hash here references a repository/branch that is a mirror
42  # of the commits to the buildtools directory in the Chromium repository. This
43  # should be regularly updated with the tip of the MIRRORED master branch,
44  # found here:
45  # https://chromium.googlesource.com/chromium/src/buildtools/+/refs/heads/main.
46  'buildtools': {
47    'url': Var('chromium_git') + '/chromium/src/buildtools' +
48      '@' + 'fba2905150c974240f14aa5334c3e5c93f873032',
49    'condition': 'not build_with_chromium',
50  },
51  'buildtools/clang_format/script': {
52    'url': Var('chromium_git') +
53      '/external/github.com/llvm/llvm-project/clang/tools/clang-format.git' +
54      '@' + Var('clang_format_revision'),
55    'condition': 'not build_with_chromium',
56  },
57  'buildtools/linux64': {
58    'packages': [
59      {
60        'package': 'gn/gn/linux-amd64',
61        'version': Var('gn_version'),
62      }
63    ],
64    'dep_type': 'cipd',
65    'condition': 'host_os == "linux" and not build_with_chromium',
66  },
67  'buildtools/mac': {
68    'packages': [
69      {
70        'package': 'gn/gn/mac-${{arch}}',
71        'version': Var('gn_version'),
72      }
73    ],
74    'dep_type': 'cipd',
75    'condition': 'host_os == "mac" and not build_with_chromium',
76  },
77  'third_party/protobuf/src': {
78    'url': Var('chromium_git') +
79      '/external/github.com/protocolbuffers/protobuf.git' +
80      '@' + '909a0f36a10075c4b4bc70fdee2c7e32dd612a72', # version 3.17.3
81    'condition': 'not build_with_chromium',
82  },
83
84  'third_party/libprotobuf-mutator/src': {
85    'url': Var('chromium_git') +
86      '/external/github.com/google/libprotobuf-mutator.git' +
87      '@' + '8942a9ba43d8bb196230c321d46d6a137957a719',
88    'condition': 'not build_with_chromium',
89  },
90
91  'third_party/zlib/src': {
92    'url': Var('github') +
93      '/madler/zlib.git' +
94      '@' + 'cacf7f1d4e3d44d871b605da3b647f07d718623f', # version 1.2.11
95    'condition': 'not build_with_chromium',
96  },
97
98  'third_party/jsoncpp/src': {
99    'url': Var('chromium_git') +
100      '/external/github.com/open-source-parsers/jsoncpp.git' +
101      '@' + '9059f5cad030ba11d37818847443a53918c327b1', # version 1.9.4
102    'condition': 'not build_with_chromium',
103  },
104
105  'third_party/googletest/src': {
106    'url': Var('chromium_git') +
107      '/external/github.com/google/googletest.git' +
108      '@' + '36d8eb532022d3b543bf55aa8ffa01b6e9f03490',
109    'condition': 'not build_with_chromium',
110  },
111
112  # Note about updating BoringSSL: after changing this hash, run the update
113  # script in BoringSSL's util folder for generating build files from the
114  # <openscreen src-dir>/third_party/boringssl directory:
115  # python ./src/util/generate_build_files.py gn
116  'third_party/boringssl/src': {
117    'url' : Var('boringssl_git') + '/boringssl.git' +
118      '@' + 'f6bd54efbcafcf4625ce99b5f702dc4850b0ca50',
119    'condition': 'not build_with_chromium',
120  },
121
122  'third_party/chromium_quic/src': {
123    'url': Var('chromium_git') + '/openscreen/quic.git' +
124      '@' + '79eec3fc28f5c4e1d06c6146825e31def6e3b793',
125    'condition': 'not build_with_chromium',
126  },
127
128  # To roll forward, use quiche_revision from chromium/src/DEPS.
129  'third_party/quiche/src': {
130    'url': Var('quiche_git') + '/quiche.git' +
131      '@' + '51f584db29001036c20db3f72f09b00b875ae625',
132    'condition': 'not build_with_chromium',
133  },
134
135  'third_party/tinycbor/src':
136    Var('chromium_git') + '/external/github.com/intel/tinycbor.git' +
137    '@' + 'fc42a049853b802e45f49588f8148fc29d7b4d9c',
138
139  # Abseil recommends living at head.  Chromium takes an Abseil snapshot
140  # irregularly, every 1-2 months. It's OK for us to come out slightly ahead
141  # of Chrome's copy here.
142  'third_party/abseil/src': {
143    'url': Var('chromium_git') +
144      '/external/github.com/abseil/abseil-cpp.git' + '@' +
145      'e19260fd7dbef881492fd73891e0be5bd4a09b95',
146    'condition': 'not build_with_chromium',
147  },
148
149  'third_party/libfuzzer/src': {
150    'url': Var('chromium_git') +
151      '/chromium/llvm-project/compiler-rt/lib/fuzzer.git' +
152      '@' + 'debe7d2d1982e540fbd6bd78604bf001753f9e74',
153    'condition': 'not build_with_chromium',
154  },
155
156  'third_party/modp_b64': {
157    'url': Var('chromium_git') + '/chromium/src/third_party/modp_b64'
158    '@' + '85754265d3847383704d19232e1ab873547cda9d',
159    'condition': 'not build_with_chromium',
160  },
161
162  'third_party/valijson/src': {
163    'url': Var('github') + '/tristanpenman/valijson.git' +
164      '@' + 'cf648930313655b19dc07ebae2f9c3fc37966a33', # Tip-of-tree
165    'condition': 'not build_with_chromium'
166  },
167
168  # Keep in sync with third_party/libaom/source/libaom in Chromium DEPS
169  'third_party/aomedia/src': {
170    'url': Var('aomedia_git') + '/aom.git' +
171      '@' + 'bb20160fbdd8226e7904541c8da70b91703e62b8',
172    'condition': 'not build_with_chromium'
173  }
174}
175
176hooks = [
177  {
178    'name': 'clang_update_script',
179    'pattern': '.',
180    'condition': 'not build_with_chromium',
181    'action': [ 'python', 'tools/download-clang-update-script.py',
182                '--output', 'tools/clang/scripts/update.py' ],
183    # NOTE: This file appears in .gitignore, as it is not a part of the
184    # openscreen repo.
185  },
186 {
187    'name': 'yajsv_update_script',
188    'pattern': '.',
189    'condition': 'not build_with_chromium',
190    'action': [ 'python', 'tools/download-yajsv.py' ],
191  },
192  {
193    'name': 'update_clang',
194    'pattern': '.',
195    'condition': 'not build_with_chromium',
196    'action': [ 'python', 'tools/clang/scripts/update.py' ],
197  },
198  {
199    'name': 'clang_coverage_tools',
200    'pattern': '.',
201    'condition': 'not build_with_chromium and checkout_clang_coverage_tools',
202    'action': ['python', 'tools/clang/scripts/update.py',
203               '--package=coverage_tools'],
204  },
205  {
206    'name': 'clang_format_linux64',
207    'pattern': '.',
208    'action': [ 'download_from_google_storage.py', '--no_resume', '--no_auth',
209                '--bucket', 'chromium-clang-format',
210                '-s', 'buildtools/linux64/clang-format.sha1' ],
211    'condition': 'host_os == "linux" and not build_with_chromium',
212  },
213  {
214    'name': 'clang_format_mac',
215    'pattern': '.',
216    'action': [ 'download_from_google_storage.py', '--no_resume', '--no_auth',
217                '--bucket', 'chromium-clang-format',
218                '-s', 'buildtools/mac/clang-format.sha1' ],
219    'condition': 'host_os == "mac" and not build_with_chromium',
220  },
221]
222
223recursedeps = [
224  'third_party/chromium_quic/src',
225  'cast',
226  'buildtools',
227]
228
229include_rules = [
230  '+util',
231  '+platform/api',
232  '+platform/base',
233  '+platform/test',
234  '+testing/util',
235  '+third_party',
236
237  # Inter-module dependencies must be through public APIs.
238  '-discovery',
239  '+discovery/common',
240  '+discovery/dnssd/public',
241  '+discovery/mdns/public',
242  '+discovery/public',
243
244  # Don't include abseil from the root so the path can change via include_dirs
245  # rules when in Chromium.
246  '-third_party/abseil',
247
248  # Abseil allowed headers.
249  '+absl/algorithm/container.h',
250  '+absl/base/thread_annotations.h',
251  '+absl/hash/hash.h',
252  '+absl/hash/hash_testing.h',
253  '+absl/strings/ascii.h',
254  '+absl/strings/match.h',
255  '+absl/strings/numbers.h',
256  '+absl/strings/str_cat.h',
257  '+absl/strings/str_join.h',
258  '+absl/strings/str_replace.h',
259  '+absl/strings/str_split.h',
260  '+absl/strings/string_view.h',
261  '+absl/strings/substitute.h',
262  '+absl/types/optional.h',
263  '+absl/types/span.h',
264  '+absl/types/variant.h',
265
266  # Similar to abseil, don't include boringssl using root path.  Instead,
267  # explicitly allow 'openssl' where needed.
268  '-third_party/boringssl',
269
270  # Test framework includes.
271  "-third_party/googletest",
272  "+gtest",
273  "+gmock",
274]
275
276skip_child_includes = [
277  'third_party/chromium_quic',
278]
279