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