blob: e22aad0f50c5b4ac1bb0a01b2aa1ceded54ee19b [file] [log] [blame]
# This file is used to manage the dependencies of the Open Screen repo. It is
# used by gclient to determine what version of each dependency to check out.
#
# For more information, please refer to the official documentation:
# https://sites.google.com/a/chromium.org/dev/developers/how-tos/get-the-code
#
# When adding a new dependency, please update the top-level .gitignore file
# to list the dependency's destination directory.
use_relative_paths = True
git_dependencies = 'SYNC'
gclient_gn_args_file = 'build/config/gclient_args.gni'
gclient_gn_args = [
'build_with_chromium',
]
vars = {
'boringssl_git': 'https://boringssl.googlesource.com',
'chromium_git': 'https://chromium.googlesource.com',
'quiche_git': 'https://quiche.googlesource.com',
# NOTE: we should only reference GitHub directly for dependencies toggled
# with the "not build_with_chromium" condition.
'github': 'https://github.com',
# NOTE: Strangely enough, this will be overridden by any _parent_ DEPS, so
# in Chromium it will correctly be True.
'build_with_chromium': False,
# Needed to download additional clang binaries for processing coverage data
# (from binaries with GN arg `use_coverage=true`).
#
# TODO(issuetracker.google.com/155195126): Change this to False and update
# buildbot to call tools/download-clang-update-script.py instead.
'checkout_clang_coverage_tools': True,
# Fetch clang-tidy into the same bin/ directory as our clang binary.
'checkout_clang_tidy': False,
# Fetch clangd into the same bin/ directory as our clang binary.
'checkout_clangd': False,
# Fetch instrumented libraries for using MSAN builds.
'checkout_configuration': 'default',
'checkout_instrumented_libraries': 'checkout_linux and checkout_configuration == "default"',
# GN CIPD package version.
'gn_version': 'git_revision:c5a0003bcc2ac3f8d128aaffd700def6068e9a76',
'clang_format_revision': '37f6e68a107df43b7d7e044fd36a13cbae3413f2',
# Chrome version to pull clang update.py script from. This is necessary
# because this script does experience breaking changes, such as removing
# command line arguments, that need to be handled intentionally by a roll.
'chrome_version': '4a1c93eb7da3e438ea5cb677c783379a282ed75d',
# 'magic' text to tell depot_tools that git submodules should be accepted
# but parity with DEPS file is expected.
'SUBMODULE_MIGRATION': 'True',
# condition to allowlist deps to be synced in Cider. Allowlisting is needed
# because not all deps are compatible with Cider. Once we migrate everything
# to be compatible we can get rid of this allowlisting mecahnism and remove
# this condition. Tracking bug for removing this condition: b/349365433
'non_git_source': 'True',
# This can be overridden, e.g. with custom_vars, to build clang from HEAD
# instead of downloading the prebuilt pinned revision.
'llvm_force_head_revision': False,
}
deps = {
# A mirror of the corresponding folder in Chromium maintained here:
# https://chromium.googlesource.com/chromium/src/buildtools/+/refs/heads/main
#
# IMPORTANT: Read the instructions at docs/roll_deps.md
'buildtools': {
'url': Var('chromium_git') + '/chromium/src/buildtools' +
'@' + 'eca5f0685c48ed59ff06077cb18cee00934249dd',
},
# A mirror of the corresponding folder in Chromium maintained here:
# https://chromium.googlesource.com/chromium/src/build/+/refs/heads/main
'build': {
'url': Var('chromium_git') + '/chromium/src/build' +
'@' + 'c53d22a398b881e70e53a972e285a925337a2494',
'condition': 'not build_with_chromium',
},
'third_party/clang-format/script': {
'url': Var('chromium_git') +
'/external/github.com/llvm/llvm-project/clang/tools/clang-format.git' +
'@' + Var('clang_format_revision'),
'condition': 'not build_with_chromium',
},
'buildtools/linux64': {
'packages': [
{
'package': 'gn/gn/linux-amd64',
'version': Var('gn_version'),
}
],
'dep_type': 'cipd',
'condition': 'host_os == "linux" and not build_with_chromium',
},
'buildtools/mac': {
'packages': [
{
'package': 'gn/gn/mac-${{arch}}',
'version': Var('gn_version'),
}
],
'dep_type': 'cipd',
'condition': 'host_os == "mac" and not build_with_chromium',
},
'buildtools/win': {
'packages': [
{
'package': 'gn/gn/windows-amd64',
'version': Var('gn_version'),
}
],
'dep_type': 'cipd',
'condition': 'host_os == "win"',
},
'third_party/ninja': {
'packages': [
# https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja
{
'package': 'infra/3pp/tools/ninja/${{platform}}',
'version': 'version:2@1.12.1.chromium.4',
}
],
'dep_type': 'cipd',
'condition': 'not build_with_chromium',
},
'third_party/libprotobuf-mutator/src': {
'url': Var('chromium_git') +
'/external/github.com/google/libprotobuf-mutator.git' +
'@' + 'a304ec48dcf15d942607032151f7e9ee504b5dcf',
'condition': 'not build_with_chromium',
},
'third_party/zlib/src': {
'url': Var('github') +
'/madler/zlib.git' +
'@' + '51b7f2abdade71cd9bb0e7a373ef2610ec6f9daf', # version 1.3.1
'condition': 'not build_with_chromium',
},
'third_party/jsoncpp/src': {
'url': Var('chromium_git') +
'/external/github.com/open-source-parsers/jsoncpp.git' +
'@' + '9af09c4a4abe5928d1f7a6e7ec1c73a565bb362e',
'condition': 'not build_with_chromium',
},
# googletest now recommends "living at head," which is a bit of a crapshoot
# because regressions land upstream frequently. This is a known good revision.
'third_party/googletest/src': {
'url': Var('chromium_git') +
'/external/github.com/google/googletest.git' +
'@' + 'eb2d85edd0bff7a712b6aff147cd9f789f0d7d0b', # 2025-08-28
'condition': 'not build_with_chromium',
},
# Make sure to also update ./third_party/boringssl/README.chromium's
# `Revision:` field when updating this dependency.
'third_party/boringssl/src': {
'url' : Var('boringssl_git') + '/boringssl.git' +
'@' + '26e8a8acb91a0cfbd2f95bf7245e2eb87d533a2f',
'condition': 'not build_with_chromium',
},
# To roll forward, typically it is best to match Chrome's version by using
# quiche_revision from chromium/src/DEPS. Coordination with the QUICHE
# maintainers may be needed for some breaking changes.
'third_party/quiche/src': {
'url': Var('quiche_git') + '/quiche.git' +
'@' + 'd54ca111b1085b9fea302560b41e371df349061c', # 2025-12-19
'condition': 'not build_with_chromium',
},
'third_party/instrumented_libs': {
'url': Var('chromium_git') + '/chromium/third_party/instrumented_libraries.git' +
'@' + '69015643b3f68dbd438c010439c59adc52cac808',
'condition': 'not build_with_chromium',
},
'third_party/tinycbor/src':
Var('chromium_git') + '/external/github.com/intel/tinycbor.git' +
'@' + 'd393c16f3eb30d0c47e6f9d92db62272f0ec4dc7', # Version 0.6.0
# Abseil recommends living at head; we take a revision from one of the LTS
# tags. Chromium has forked abseil for reasons and it seems to be rolled
# frequently, but LTS should generally be safe for interop with Chromium code.
'third_party/abseil/src': {
'url': Var('chromium_git') +
'/external/github.com/abseil/abseil-cpp.git' + '@' +
'987c57f325f7fa8472fa84e1f885f7534d391b0d', # 2025-11-11
'condition': 'not build_with_chromium',
},
'third_party/libfuzzer/src': {
'url': Var('chromium_git') +
'/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git' +
'@' + 'bea408a6e01f0f7e6c82a43121fe3af4506c932e',
'condition': 'not build_with_chromium',
},
# IMPORTANT: Read the instructions at docs/roll_deps.md
'third_party/libc++/src': {
'url': Var('chromium_git') +
'/external/github.com/llvm/llvm-project/libcxx.git' + '@' + '07572e7b169225ef3a999584cba9d9004631ae66',
'condition': 'not build_with_chromium',
},
# IMPORTANT: Read the instructions at docs/roll_deps.md
'third_party/libc++abi/src': {
'url': Var('chromium_git') +
'/external/github.com/llvm/llvm-project/libcxxabi.git' + '@' + '83a852080747b9a362e8f9e361366b7a601f302c',
'condition': 'not build_with_chromium',
},
'third_party/llvm-build/Release+Asserts': {
'dep_type': 'gcs',
'bucket': 'chromium-browser-clang',
'objects': [
{
# The Android libclang_rt.builtins libraries are currently only included in the Linux clang package.
'object_name': 'Linux_x64/clang-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': '1ef7b1d60fb433100c27b4552b44577ab86ef5394531d1fbebc237db64a893fd',
'size_bytes': 56552908,
'generation': 1762971374100697,
'condition': '(host_os == "linux" or checkout_android) and non_git_source',
},
{
'object_name': 'Linux_x64/clang-tidy-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': '505f0fa190dc3266f36f7908f46d4e2514b7b5edab02a25dbd721fb7f28dffd8',
'size_bytes': 14268616,
'generation': 1762971374302563,
'condition': 'host_os == "linux" and checkout_clang_tidy and non_git_source',
},
{
'object_name': 'Linux_x64/clangd-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': 'cc0fe5e6f78a6d70234aa5fc9010761e63f283b8ad24e8194529c4677f723fdd',
'size_bytes': 14443332,
'generation': 1762971374370609,
'condition': 'host_os == "linux" and checkout_clangd and non_git_source',
},
{
'object_name': 'Linux_x64/llvm-code-coverage-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': 'd5e60668fe312a345637b6c7918715ea54bb7078aa1bed1115dc382f955979d6',
'size_bytes': 2304960,
'generation': 1762971374620627,
'condition': 'host_os == "linux" and checkout_clang_coverage_tools and non_git_source',
},
{
'object_name': 'Linux_x64/llvmobjdump-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': 'ec1d88867045b8348659f7a8f677d12aa91d7d61a68603a82bad1926bf57c3b0',
'size_bytes': 5723188,
'generation': 1762971374436694,
'condition': '((checkout_linux or checkout_mac or checkout_android) and host_os == "linux") and non_git_source',
},
{
'object_name': 'Mac/clang-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': 'f266b79576d4fc0075e9380b68b8879ec2bc9617c973e7bdea694ec006f43636',
'size_bytes': 54056416,
'generation': 1762971376161293,
'condition': 'host_os == "mac" and host_cpu == "x64"',
},
{
'object_name': 'Mac/clang-mac-runtime-library-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': '6f2d61383a3c0ab28286e5a57b7e755eb14726bb9a73a7737b685488eae18b90',
'size_bytes': 1010052,
'generation': 1762971385382392,
'condition': 'checkout_mac and not host_os == "mac"',
},
{
'object_name': 'Mac/clang-tidy-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': '8e5157522a2557e14d8a456a1c227ebc522f383738f498c1451af3a98f361f99',
'size_bytes': 14299120,
'generation': 1762971376313425,
'condition': 'host_os == "mac" and host_cpu == "x64" and checkout_clang_tidy',
},
{
'object_name': 'Mac/clangd-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': '399d8930899c2f9bfb9bbcf841b9ca237d876e818a54b04256c790e6a2cb14c2',
'size_bytes': 15832668,
'generation': 1762971376411558,
'condition': 'host_os == "mac" and host_cpu == "x64" and checkout_clangd',
},
{
'object_name': 'Mac/llvm-code-coverage-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': '5b4d56a772e6128c98e7f880de5a052869334f39b59b81fee7079d56cd6bcfd4',
'size_bytes': 2338512,
'generation': 1762971376592644,
'condition': 'host_os == "mac" and host_cpu == "x64" and checkout_clang_coverage_tools',
},
{
'object_name': 'Mac/llvmobjdump-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': '9a282bf252e0c7ac88152844f347428e02970aa22941fb583439ce72134f0161',
'size_bytes': 5607404,
'generation': 1762971376526568,
'condition': 'host_os == "mac" and host_cpu == "x64"',
},
{
'object_name': 'Mac_arm64/clang-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': 'a7b7caf53f4e722234e85aecfdbb3eeb94608c37394672bebd074d6b2f300362',
'size_bytes': 45184380,
'generation': 1762971386895625,
'condition': 'host_os == "mac" and host_cpu == "arm64"',
},
{
'object_name': 'Mac_arm64/clang-tidy-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': 'bb3750fb501048c7ec2d145e69236b87bfe016bd3b81251c0e12f220c00d5875',
'size_bytes': 12313940,
'generation': 1762971387031271,
'condition': 'host_os == "mac" and host_cpu == "arm64" and checkout_clang_tidy',
},
{
'object_name': 'Mac_arm64/clangd-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': '5b585c910a8eb3f251a1efc76bc27fd63bcb4ebe99671f434f5d7fbfe76604c3',
'size_bytes': 12690748,
'generation': 1762971387200930,
'condition': 'host_os == "mac" and host_cpu == "arm64" and checkout_clangd',
},
{
'object_name': 'Mac_arm64/llvm-code-coverage-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': '044fec98aa72c1f4aebdc454a2bcc8d19735357e9f255d6fc01aae25c1369d41',
'size_bytes': 1970340,
'generation': 1762971387351744,
'condition': 'host_os == "mac" and host_cpu == "arm64" and checkout_clang_coverage_tools',
},
{
'object_name': 'Mac_arm64/llvmobjdump-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': 'c5ee70e78ae5aa7a0d9b613ea5a8e21629438f12acb50bca0f7e18fae6abfe0a',
'size_bytes': 5353832,
'generation': 1762971387217357,
'condition': 'host_os == "mac" and host_cpu == "arm64"',
},
{
'object_name': 'Win/clang-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': '483b9b2809c3f53b9640e77d83ca6ab3017a0974979d242198abf23d99639e62',
'size_bytes': 48337640,
'generation': 1762971401378315,
'condition': 'host_os == "win"',
},
{
'object_name': 'Win/clang-tidy-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': 'd40723233f6d59b1ba64cd7600d4da7b67a7433d81c32be3806ff1c47c9794aa',
'size_bytes': 14255432,
'generation': 1762971401522927,
'condition': 'host_os == "win" and checkout_clang_tidy',
},
{
'object_name': 'Win/clang-win-runtime-library-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': 'd8b3310760c3a8f5dac4801583f7872601f4ba312742b0bf530f043ce6b6f36f',
'size_bytes': 2520664,
'generation': 1762971410370409,
'condition': 'checkout_win and not host_os == "win"',
},
{
'object_name': 'Win/clangd-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': '563b9f1a82980634657b89bb61ae5c6d386c8199acc01b84fb57cdcd0a53e1d1',
'size_bytes': 14641972,
'generation': 1762971401646458,
'condition': 'host_os == "win" and checkout_clangd',
},
{
'object_name': 'Win/llvm-code-coverage-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': '7caa4ecfbc320bf993640dcaa58882433a0adcc266adf26798f45d28d6d73af8',
'size_bytes': 2385732,
'generation': 1762971401865919,
'condition': 'host_os == "win" and checkout_clang_coverage_tools',
},
{
'object_name': 'Win/llvmobjdump-llvmorg-22-init-14273-gea10026b-1.tar.xz',
'sha256sum': '00c4dab7747534548e2111b3adbdbf9ef561887e18c7d6de4c7e273af799c190',
'size_bytes': 5742908,
'generation': 1762971401692156,
'condition': '(checkout_linux or checkout_mac or checkout_android) and host_os == "win"',
},
]
},
'third_party/llvm-libc/src': {
'url': Var('chromium_git') +
'/external/github.com/llvm/llvm-project/libc.git' + '@' + '74b25173cba70124bff5da97cc339d90c516c5f6',
'condition': 'not build_with_chromium',
},
'third_party/modp_b64': {
'url': Var('chromium_git') + '/chromium/src/third_party/modp_b64'
'@' + '7c1b3276e72757e854b5b642284aa367436a4723', # 2024-11-18
'condition': 'not build_with_chromium',
},
'third_party/valijson/src': {
'url': Var('github') + '/tristanpenman/valijson.git' +
'@' + 'fc9ddf14db683c9443c48ae3a6bf83e0ce3ad37c', # Version 1.0.3
'condition': 'not build_with_chromium',
},
# Googleurl recommends living at head. This is a copy of Chrome's URL parsing
# library. It is meant to be used by QUICHE.
#
# Make sure to also update ./third_party/googleurl/README.chromium's
# `Revision:` field when updating this dependency.
'third_party/googleurl/src': {
'url': Var('quiche_git') + '/googleurl.git' +
'@' + '94ff147fe0b96b4cca5d6d316b9af6210c0b8051', #2025-11-11
'condition': 'not build_with_chromium',
},
'third_party/perfetto/src': {
'url': Var('chromium_git') + '/external/github.com/google/perfetto.git' +
'@' + '1d9994a93c6ada2fb261dc72984fa07683a6c86e',
'condition': 'not build_with_chromium',
},
}
hooks = [
{
'name': 'clang_update_script',
'pattern': '.',
'condition': 'not build_with_chromium',
'action': [ 'python3', 'tools/download-clang-update-script.py',
'--revision', Var('chrome_version'),
'--output', 'tools/clang/scripts/update.py' ],
# NOTE: This file appears in .gitignore, as it is not a part of the
# openscreen repo.
},
]
# This exists to allow Google Cloud Storage blobs in these DEPS to be fetched.
# Do not add any additional recursedeps entries without consulting
# mfoltz@chromium.org!
recursedeps = [
'build',
'buildtools',
'third_party/instrumented_libs',
]
include_rules = [
'+util',
'+platform/api',
'+platform/base',
'+platform/test',
'+testing/util',
'+third_party',
# Inter-module dependencies must be through public APIs.
'-discovery',
'+discovery/common',
'+discovery/dnssd/public',
'+discovery/mdns/public',
'+discovery/public',
# Don't include Abseil.
'-third_party/abseil',
'-absl',
# Similar to abseil, don't include boringssl using root path. Instead,
# explicitly allow 'openssl' where needed.
'-third_party/boringssl',
# Test framework includes.
'-third_party/googletest',
'+gtest',
'+gmock',
# Can use generic Chromium buildflags.
'+build/build_config.h',
]