blob: bc54d785e365bf4e9ad297c845cc66176efe0395 [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
btolsch297e9f72020-02-06 00:04:01 -080025 # Needed to download additional clang binaries for processing coverage data
26 # (from binaries with GN arg `use_coverage=true`).
Ryan Keane3c396112020-04-28 14:24:43 -070027 #
28 # TODO(issuetracker.google.com/155195126): Change this to False and update
Jordan Bayles82a5b2d2020-11-09 11:00:51 -080029 # buildbot to call tools/download-clang-update-script.py instead.
Ryan Keane3c396112020-04-28 14:24:43 -070030 'checkout_clang_coverage_tools': True,
Jordan Bayles6e279a02021-05-27 14:24:12 -070031
32 # GN CIPD package version.
mark a. foltzfaea8532023-01-25 15:45:51 -080033 'gn_version': 'git_revision:5e19d2fb166fbd4f6f32147fbb2f497091a54ad8',
mark a. foltzee7d4e82022-04-07 11:56:42 -070034 'clang_format_revision': 'e435ad79c17b1888b34df88d6a30a094936e3836',
Jordan Baylesb5c9ece2019-02-22 15:16:44 -080035}
36
37deps = {
Yuri Wiitala50d8abc2020-01-09 18:36:09 -080038 # NOTE: This commit hash here references a repository/branch that is a mirror
39 # of the commits to the buildtools directory in the Chromium repository. This
40 # should be regularly updated with the tip of the MIRRORED master branch,
41 # found here:
mark a. foltzee7d4e82022-04-07 11:56:42 -070042 # https://chromium.googlesource.com/chromium/src/buildtools/+/refs/heads/main
Yuri Wiitala50d8abc2020-01-09 18:36:09 -080043 'buildtools': {
Jordan Bayles6e279a02021-05-27 14:24:12 -070044 'url': Var('chromium_git') + '/chromium/src/buildtools' +
mark a. foltzfaea8532023-01-25 15:45:51 -080045 '@' + '3c7e3f1b8b1e4c0b6ec693430379cea682de78d6',
Yuri Wiitala50d8abc2020-01-09 18:36:09 -080046 'condition': 'not build_with_chromium',
47 },
mark a. foltzdec3ae52021-06-01 15:54:50 -070048 'buildtools/clang_format/script': {
49 'url': Var('chromium_git') +
50 '/external/github.com/llvm/llvm-project/clang/tools/clang-format.git' +
51 '@' + Var('clang_format_revision'),
52 'condition': 'not build_with_chromium',
53 },
Jordan Bayles6e279a02021-05-27 14:24:12 -070054 'buildtools/linux64': {
55 'packages': [
56 {
57 'package': 'gn/gn/linux-amd64',
58 'version': Var('gn_version'),
59 }
60 ],
61 'dep_type': 'cipd',
mark a. foltzdec3ae52021-06-01 15:54:50 -070062 'condition': 'host_os == "linux" and not build_with_chromium',
Jordan Bayles6e279a02021-05-27 14:24:12 -070063 },
64 'buildtools/mac': {
65 'packages': [
66 {
67 'package': 'gn/gn/mac-${{arch}}',
68 'version': Var('gn_version'),
69 }
70 ],
71 'dep_type': 'cipd',
mark a. foltzdec3ae52021-06-01 15:54:50 -070072 'condition': 'host_os == "mac" and not build_with_chromium',
Jordan Bayles6e279a02021-05-27 14:24:12 -070073 },
Junji Watanabe14705b32022-11-11 14:01:34 +090074
75 'third_party/ninja': {
76 'packages': [
77 # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja
78 {
79 'package': 'infra/3pp/tools/ninja/${{platform}}',
80 'version': 'version:2@1.8.2.chromium.3',
81 }
82 ],
83 'dep_type': 'cipd',
84 'condition': 'not build_with_chromium',
85 },
86
Yuri Wiitala50d8abc2020-01-09 18:36:09 -080087 'third_party/protobuf/src': {
88 'url': Var('chromium_git') +
89 '/external/github.com/protocolbuffers/protobuf.git' +
Jordan Baylesf3b911c2021-06-22 11:28:50 -070090 '@' + '909a0f36a10075c4b4bc70fdee2c7e32dd612a72', # version 3.17.3
Yuri Wiitala50d8abc2020-01-09 18:36:09 -080091 'condition': 'not build_with_chromium',
92 },
Jordan Baylesfa947f02019-06-05 12:52:56 -070093
John Williams8cce3492020-05-21 15:13:52 -070094 'third_party/libprotobuf-mutator/src': {
95 'url': Var('chromium_git') +
Jordan Bayles842767b2020-11-23 14:50:17 -080096 '/external/github.com/google/libprotobuf-mutator.git' +
mark a. foltzfaea8532023-01-25 15:45:51 -080097 '@' + 'a304ec48dcf15d942607032151f7e9ee504b5dcf',
John Williams8cce3492020-05-21 15:13:52 -070098 'condition': 'not build_with_chromium',
99 },
100
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800101 'third_party/zlib/src': {
102 'url': Var('github') +
103 '/madler/zlib.git' +
mark a. foltzfaea8532023-01-25 15:45:51 -0800104 '@' + '04f42ceca40f73e2978b50e93806c2a18c1281fc', # version 1.2.13
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800105 'condition': 'not build_with_chromium',
106 },
btolsch22fa1842019-07-16 21:40:28 -0700107
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800108 'third_party/jsoncpp/src': {
109 'url': Var('chromium_git') +
110 '/external/github.com/open-source-parsers/jsoncpp.git' +
mark a. foltzee7d4e82022-04-07 11:56:42 -0700111 '@' + '5defb4ed1a4293b8e2bf641e16b156fb9de498cc', # version 1.9.5
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800112 'condition': 'not build_with_chromium',
113 },
btolsch22fa1842019-07-16 21:40:28 -0700114
mark a. foltzfaea8532023-01-25 15:45:51 -0800115 # googletest now recommends "living at head," which is a bit of a crapshoot
116 # because regressions land upstream frequently. This is a known good revision.
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800117 'third_party/googletest/src': {
118 'url': Var('chromium_git') +
119 '/external/github.com/google/googletest.git' +
mark a. foltzfaea8532023-01-25 15:45:51 -0800120 '@' + 'b495f72f1f096135cf9cf8c7879b5b89250de50a', # 2023-01-25
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800121 'condition': 'not build_with_chromium',
122 },
Jordan Baylesfa947f02019-06-05 12:52:56 -0700123
Jordan Bayles74021fe2020-04-29 17:00:07 -0700124 # Note about updating BoringSSL: after changing this hash, run the update
125 # script in BoringSSL's util folder for generating build files from the
126 # <openscreen src-dir>/third_party/boringssl directory:
127 # python ./src/util/generate_build_files.py gn
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800128 'third_party/boringssl/src': {
129 'url' : Var('boringssl_git') + '/boringssl.git' +
David Benjamin940f00b2021-03-04 15:15:20 -0500130 '@' + 'f6bd54efbcafcf4625ce99b5f702dc4850b0ca50',
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800131 'condition': 'not build_with_chromium',
132 },
Jordan Baylesb5c9ece2019-02-22 15:16:44 -0800133
mark a. foltz3eca6052021-07-13 15:17:39 -0700134 # To roll forward, use quiche_revision from chromium/src/DEPS.
135 'third_party/quiche/src': {
136 'url': Var('quiche_git') + '/quiche.git' +
mark a. foltzfaea8532023-01-25 15:45:51 -0800137 '@' + '7b58beaec1f65b8e074ddb81796e34f3d6d83cf3',
mark a. foltz3eca6052021-07-13 15:17:39 -0700138 'condition': 'not build_with_chromium',
139 },
140
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800141 'third_party/tinycbor/src':
142 Var('chromium_git') + '/external/github.com/intel/tinycbor.git' +
mark a. foltzee7d4e82022-04-07 11:56:42 -0700143 '@' + 'd393c16f3eb30d0c47e6f9d92db62272f0ec4dc7', # Version 0.6.0
Jordan Baylesb5c9ece2019-02-22 15:16:44 -0800144
mark a. foltzfaea8532023-01-25 15:45:51 -0800145 # Abseil recommends living at head; we take a revision from one of the LTS
146 # tags. Chromium has forked abseil for reasons and it seems to be rolled
147 # frequently, but LTS should generally be safe for interop with Chromium code.
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800148 'third_party/abseil/src': {
149 'url': Var('chromium_git') +
Jordan Bayles842767b2020-11-23 14:50:17 -0800150 '/external/github.com/abseil/abseil-cpp.git' + '@' +
mark a. foltzfaea8532023-01-25 15:45:51 -0800151 '78be63686ba732b25052be15f8d6dee891c05749', # lts_2023_01_25
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800152 'condition': 'not build_with_chromium',
153 },
Jordan Bayles74021fe2020-04-29 17:00:07 -0700154
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800155 'third_party/libfuzzer/src': {
156 'url': Var('chromium_git') +
157 '/chromium/llvm-project/compiler-rt/lib/fuzzer.git' +
158 '@' + 'debe7d2d1982e540fbd6bd78604bf001753f9e74',
159 'condition': 'not build_with_chromium',
160 },
Jordan Bayles12b95e72020-12-03 09:26:47 -0800161
Jordan Bayles79c6ea22020-12-10 11:12:44 -0800162 'third_party/modp_b64': {
163 'url': Var('chromium_git') + '/chromium/src/third_party/modp_b64'
mark a. foltzfaea8532023-01-25 15:45:51 -0800164 '@' + '3643752c065d984647f0ded68a9a01926fb3b9cd', # 2022-11-28
Jordan Bayles79c6ea22020-12-10 11:12:44 -0800165 'condition': 'not build_with_chromium',
166 },
167
Jordan Bayles12b95e72020-12-03 09:26:47 -0800168 'third_party/valijson/src': {
169 'url': Var('github') + '/tristanpenman/valijson.git' +
mark a. foltzfaea8532023-01-25 15:45:51 -0800170 '@' + '78ac8a737df56b5334354efe104ea8f99e2a2f00', # Version 1.0
Jordan Bayles79c6ea22020-12-10 11:12:44 -0800171 'condition': 'not build_with_chromium'
Jordan Bayles12b95e72020-12-03 09:26:47 -0800172 }
Jordan Baylesb5c9ece2019-02-22 15:16:44 -0800173}
btolschb1d095b2019-02-28 10:14:26 -0800174
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800175hooks = [
176 {
177 'name': 'clang_update_script',
178 'pattern': '.',
179 'condition': 'not build_with_chromium',
mark a. foltz3ea21022021-10-29 11:09:28 -0700180 'action': [ 'tools/download-clang-update-script.py',
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800181 '--output', 'tools/clang/scripts/update.py' ],
182 # NOTE: This file appears in .gitignore, as it is not a part of the
183 # openscreen repo.
184 },
185 {
186 'name': 'update_clang',
187 'pattern': '.',
188 'condition': 'not build_with_chromium',
Hans Wennborg6efb5b92021-10-29 10:51:38 +0200189 'action': [ 'python3', 'tools/clang/scripts/update.py' ],
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800190 },
191 {
btolsch297e9f72020-02-06 00:04:01 -0800192 'name': 'clang_coverage_tools',
193 'pattern': '.',
194 'condition': 'not build_with_chromium and checkout_clang_coverage_tools',
Hans Wennborg6efb5b92021-10-29 10:51:38 +0200195 'action': ['python3', 'tools/clang/scripts/update.py',
btolsch297e9f72020-02-06 00:04:01 -0800196 '--package=coverage_tools'],
197 },
198 {
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800199 'name': 'clang_format_linux64',
200 'pattern': '.',
201 'action': [ 'download_from_google_storage.py', '--no_resume', '--no_auth',
202 '--bucket', 'chromium-clang-format',
203 '-s', 'buildtools/linux64/clang-format.sha1' ],
204 'condition': 'host_os == "linux" and not build_with_chromium',
205 },
206 {
mark a. foltzee7d4e82022-04-07 11:56:42 -0700207 'name': 'clang_format_mac_x64',
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800208 'pattern': '.',
209 'action': [ 'download_from_google_storage.py', '--no_resume', '--no_auth',
210 '--bucket', 'chromium-clang-format',
mark a. foltzee7d4e82022-04-07 11:56:42 -0700211 '-s', 'buildtools/mac/clang-format.x64.sha1' ],
212 'condition': 'host_os == "mac" and host_cpu == "x64" and not build_with_chromium',
213 },
214 {
215 'name': 'clang_format_mac_arm64',
216 'pattern': '.',
217 'action': [ 'download_from_google_storage.py', '--no_resume', '--no_auth',
218 '--bucket', 'chromium-clang-format',
219 '-s', 'buildtools/mac/clang-format.arm64.sha1' ],
220 'condition': 'host_os == "mac" and host_cpu == "arm64" and not build_with_chromium',
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800221 },
222]
223
btolschb1d095b2019-02-28 10:14:26 -0800224recursedeps = [
Jordan Bayles12b95e72020-12-03 09:26:47 -0800225 'cast',
btolschb1d095b2019-02-28 10:14:26 -0800226]
btolsch9ba23712019-04-18 16:36:55 -0700227
228include_rules = [
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800229 '+util',
230 '+platform/api',
231 '+platform/base',
232 '+platform/test',
233 '+testing/util',
234 '+third_party',
btolsch9ba23712019-04-18 16:36:55 -0700235
mark a. foltzf9715c52021-07-20 17:00:33 -0700236 # Inter-module dependencies must be through public APIs.
237 '-discovery',
238 '+discovery/common',
239 '+discovery/dnssd/public',
240 '+discovery/mdns/public',
241 '+discovery/public',
242
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800243 # Don't include abseil from the root so the path can change via include_dirs
244 # rules when in Chromium.
245 '-third_party/abseil',
btolsch9ba23712019-04-18 16:36:55 -0700246
mark a. foltz8c11e262020-07-22 14:29:37 -0700247 # Abseil allowed headers.
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800248 '+absl/algorithm/container.h',
249 '+absl/base/thread_annotations.h',
250 '+absl/hash/hash.h',
Ryan Keane492f4862020-06-10 10:03:39 -0700251 '+absl/hash/hash_testing.h',
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800252 '+absl/strings/ascii.h',
253 '+absl/strings/match.h',
254 '+absl/strings/numbers.h',
255 '+absl/strings/str_cat.h',
256 '+absl/strings/str_join.h',
Ryan Keane7ff43172020-01-14 14:16:27 -0800257 '+absl/strings/str_replace.h',
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800258 '+absl/strings/str_split.h',
259 '+absl/strings/string_view.h',
260 '+absl/strings/substitute.h',
261 '+absl/types/optional.h',
262 '+absl/types/span.h',
263 '+absl/types/variant.h',
Jordan Bayles2d01f172019-06-07 11:11:50 -0700264
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800265 # Similar to abseil, don't include boringssl using root path. Instead,
266 # explicitly allow 'openssl' where needed.
267 '-third_party/boringssl',
btolschaaad6a52019-08-05 14:05:39 -0700268
Yuri Wiitala50d8abc2020-01-09 18:36:09 -0800269 # Test framework includes.
270 "-third_party/googletest",
271 "+gtest",
272 "+gmock",
btolsch9ba23712019-04-18 16:36:55 -0700273]