blob: d72b2508ba872b98460f6cf75230302464275101 [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:c97a86a72105f3328a540f5a5ab17d11989ab7dd',
'clang_format_revision': '37f6e68a107df43b7d7e044fd36a13cbae3413f2',
# 'magic' text to tell depot_tools that git submodules should be accepted
# but parity with DEPS file is expected.
'SUBMODULE_MIGRATION': '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 = {
# NOTE: These commit hashes here reference a repository/branch that is a
# mirror of the commits in the corresponding Chromium repository directory,
# and should be regularly updated with the tip of the MIRRORED master branch,
# found here:
# https://chromium.googlesource.com/chromium/src/buildtools/+/refs/heads/main
'buildtools': {
'url': Var('chromium_git') + '/chromium/src/buildtools' +
'@' + '00459762409cb29cecf398a23cdb0cae918b7515',
},
# and here:
# https://chromium.googlesource.com/chromium/src/build/+/refs/heads/main
'build': {
'url': Var('chromium_git') + '/chromium/src/build' +
'@' + '043f0ac1c5fc7a29960fda36ce6689a96bdc11ee',
'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' +
'@' + '89e2973c754a9c02a49974d839779b151e95afd6', # version 1.9.6
'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' +
'@' + 'b514bdc898e2951020cbdca1304b75f5950d1f59', # 2023-01-25
'condition': 'not build_with_chromium',
},
# Note about updating BoringSSL: after changing this hash, run the update
# script in BoringSSL's util folder for generating build files from the
# <openscreen src-dir>/third_party/boringssl directory:
# python3 ./src/util/generate_build_files.py --embed_test_data=false gn
'third_party/boringssl/src': {
'url' : Var('boringssl_git') + '/boringssl.git' +
'@' + '8d19c850d4dbde4bd7ece463c3b3f3685571a779',
'condition': 'not build_with_chromium',
},
# To roll forward, use quiche_revision from chromium/src/DEPS.
'third_party/quiche/src': {
'url': Var('quiche_git') + '/quiche.git' +
'@' + '5a433bd7de22c23700d046346bd3d3afe5c9cd07', # 2025-02-10
'condition': 'not build_with_chromium',
},
'third_party/instrumented_libs': {
'url': Var('chromium_git') + '/chromium/third_party/instrumented_libraries.git' +
'@' + '3cc43119a29158bcde39d288a8def4b8ec49baf8',
'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' + '@' +
'dd4c89bd657f1e247ce5111a5c89ffe6ccfd0c92', # 2025-01-30
'condition': 'not build_with_chromium',
},
'third_party/libfuzzer/src': {
'url': Var('chromium_git') +
'/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git' +
'@' + 'e31b99917861f891308269c36a32363b120126bb',
'condition': 'not build_with_chromium',
},
'third_party/libc++/src': {
'url': Var('chromium_git') +
'/external/github.com/llvm/llvm-project/libcxx.git' + '@' + '11c38d901d29bc91aee3efb53652f7141f72f47f',
'condition': 'not build_with_chromium',
},
'third_party/libc++abi/src': {
'url': Var('chromium_git') +
'/external/github.com/llvm/llvm-project/libcxxabi.git' + '@' + '83dfa1f5bfce32d5f75695542468e37ead8163b8',
'condition': 'not build_with_chromium',
},
'third_party/llvm-libc/src': {
'url': Var('chromium_git') +
'/external/github.com/llvm/llvm-project/libc.git' + '@' + '2222607a3ea3d5f65338d3b36a4cc5fb563169ab',
'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.
#
# NOTE: Pin to the current revision as newer versions use C++20 features.
'third_party/googleurl/src': {
'url': Var('quiche_git') + '/googleurl.git' +
'@' + 'dfe8ef6164f8b4e3e9a9cbe8521bb81359918393', #2023-08-01
'condition': 'not build_with_chromium',
}
}
hooks = [
{
'name': 'clang_update_script',
'pattern': '.',
'condition': 'not build_with_chromium',
'action': [ 'python3', 'tools/download-clang-update-script.py',
'--output', 'tools/clang/scripts/update.py' ],
# NOTE: This file appears in .gitignore, as it is not a part of the
# openscreen repo.
},
{
'name': 'update_clang',
'pattern': '.',
'condition': 'not build_with_chromium',
'action': [ 'python3', 'tools/clang/scripts/update.py' ],
},
{
'name': 'clang_coverage_tools',
'pattern': '.',
'condition': 'not build_with_chromium and checkout_clang_coverage_tools',
'action': ['python3', 'tools/clang/scripts/update.py',
'--package=coverage_tools'],
},
]
# 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 from the root so the path can change via include_dirs
# rules when in Chromium.
'-third_party/abseil',
# Abseil allowed headers.
# IMPORTANT: Do not add new entries; abseil is being removed from the library.
# See https://issuetracker.google.com/158433927
'+absl/types/variant.h',
# 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',
]