webrtc/DEPS

90 lines
2.7 KiB
Plaintext
Raw Normal View History

# This file contains dependencies for WebRTC that are not shared with Chromium.
# If you wish to add a dependency that is present in Chromium's src/DEPS or a
# directory from the Chromium checkout, you should add it to setup_links.py
# instead.
vars = {
# Override root_dir in your .gclient's custom_vars to specify a custom root
# folder name.
"root_dir": "trunk",
"extra_gyp_flag": "-Dextra_gyp_flag=0",
# Use this googlecode_url variable only if there is an internal mirror for it.
# If you do not know, use the full path while defining your new deps entry.
"googlecode_url": "http://%s.googlecode.com/svn",
"chromium_revision": "c264a0567ee9417d1ff8d8dc61f3a79f2232ea06",
}
# NOTE: Prefer revision numbers to tags for svn deps. Use http rather than
# https; the latter can cause problems for users behind proxies.
deps = {
# When rolling gflags, also update deps/third_party/webrtc/webrtc.DEPS/DEPS
# in Chromium's repo.
Var("root_dir") + "/third_party/gflags/src":
(Var("googlecode_url") % "gflags") + "/trunk/src@84",
Var("root_dir") + "/third_party/junit/":
(Var("googlecode_url") % "webrtc") + "/deps/third_party/junit@3367",
}
deps_os = {
"win": {
Var("root_dir") + "/third_party/winsdk_samples/src":
(Var("googlecode_url") % "webrtc") + "/deps/third_party/winsdk_samples_v71@3145",
},
}
include_rules = [
# Base is only used to build Android APK tests and may not be referenced by
# WebRTC production code.
"-base",
"-chromium",
'+net',
'+talk',
'+testing',
'+webrtc',
]
# checkdeps.py shouldn't check include paths for files in these dirs:
skip_child_includes = [
'gflags',
'testing',
'third_party',
'webrtc/overrides',
]
hooks = [
{
# Clone chromium and its deps.
"name": "sync chromium",
"pattern": ".",
"action": ["python", "-u", Var("root_dir") + "/sync_chromium.py",
"--target-revision", Var("chromium_revision")],
},
{
# Create links to shared dependencies in Chromium.
"name": "setup_links",
"pattern": ".",
"action": ["python", Var("root_dir") + "/setup_links.py"],
Roll chromium_revision 272489:277350 + fix sanitizer options Rolling to this new Chromium revision required us to introduce a sanitizer_options similar to the one in Chromium's base (see https://code.google.com/p/chromium/codesearch#chromium/src/base/base.gyp&l=977 and https://codereview.chromium.org/238123003) in order to get the same defaults for ASan and LSan. Without it compilation will break since LeakSanitizer (LSan) is enabled by default in Clang r209387 that is pulled with this roll. I setup so that we pull in the sanitizer_options.cc and tsan_suppressions.cc files using DEPS, so we don't have to maintain them separately for now. We can still use our own TSan suppressions.txt file as we do today with no changes needed. This roll also brings in http://crrev.com/276676 so we can enable GN build for WebRTC. Overview of changes in Chrome DEPS: $ svn diff http://src.chromium.org/chrome/trunk/src/DEPS -r 272489:277350 which can be compared with the output of: $ svn cat http://webrtc.googlecode.com/svn/trunk/DEPS | grep chromium_deps | sed 's/^ *//' | sort | uniq in a WebRTC checkout, gives the following relevant changes: * third_party/android_tools 6fc0e1:c6e658 * third_party/libjpeg_turbo 263594:272637 * third_party/libyuv 1000:1007 * third_party/nss 271760:277057 * tools/gyp 1921:1927 * tools/swarming_client ae8085:aea506 The following also shows that Clang is upgraded from r206824 to r209387: $ svn diff http://src.chromium.org/chrome/trunk/src/tools/clang/scripts/update.sh -r 272489:277350 BUG=3441 TEST=Trybots are not passing since after the recipe switch, SVN-based try jobs doesn't seem to support auto-detecting that a sync is needed if there's a DEPS change. R=andrew@webrtc.org, pbos@webrtc.org Review URL: https://webrtc-codereview.appspot.com/12729004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6516 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-21 21:30:29 +02:00
},
{
# Download test resources, i.e. video and audio files from Google Storage.
"pattern": ".",
"action": ["download_from_google_storage",
"--directory",
"--recursive",
"--num_threads=10",
"--no_auth",
"--bucket", "chromium-webrtc-resources",
Var("root_dir") + "/resources"],
},
{
# A change to a .gyp, .gypi, or to GYP itself should run the generator.
Roll chromium_revision 249215:255773 Overview of changes in Chrome DEPS: $ svn diff http://src.chromium.org/chrome/trunk/src/DEPS -r 249215:255773 which can be compared with the output of: $ grep chromium_deps DEPS in a WebRTC checkout, gives the following relevant changes: * third_party/icu 246118:249466 * third_party/libyuv 978:979 * third_party/libjpeg_turbo 239595:251747 * third_party/libsrtp 214783:250757 * third_party/nss 246067:254867 * tools/clang-format 198831:202065 * tools/gyp 1846:1860 Among a variety of updated DEPS, this enables us to use the new automatic download of Chromium's stripped down Visual Studio 2013 toolchain on Windows. For Windows, Visual Studio 2013 is also the default compiler in Chrome. This CL sets the GYP_MSVS_VERSION to 2010 unless otherwise specified. Doing that we can first fix our 2013 problems before we move over to having 2013 by default. The plan is to build 2013 at the WebRTC FYI waterfall at http://build.chromium.org/p/client.webrtc.fyi/waterfall to ensure we can support VS2013 before the switch. I realized we can sync Chromium's find_depot_tools.py script into it's own folder and just alter the PYTHONPATH for the gyp_webrtc script. That way there's no need to have the dummy module in webrtc/build anymore. The real script is also needed for the logic that handles checking VS2013 and downloading it if not found. BUG=chromium:340973 TEST=All trybots passing runhooks and compile step. R=tommi@webrtc.org Review URL: https://webrtc-codereview.appspot.com/9299004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@5667 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-10 10:51:17 +01:00
"name": "gyp",
"pattern": ".",
Add gyp_webrtc script to generate projects. The reason for this is that http://crrev.com/245412 introduces a dependency of Chrome's src/build/gyp_chromium to src/tools/find_depot_tools.py, which we don't have synced in WebRTC (src/tools is very big). Offline discussions shows that we cannot rely on syncing individual subdirectories from Chrome in the future, but maintaining our own gyp_webrtc file will at least buy us some time for now, so we can roll past that chromium_revision in WebRTC DEPS. Overview of differences between gyp_webrtc and gyp_chromium (and how we previously used gyp_chromium): * No .gyp file needs to be passed (defaults to all.gyp) * CHROMIUM_GYP_FILE is ignored (i.e. cannot be used to specify an alternate .gyp file to process) * Ninja is used by default on all platforms unless GYP_GENERATORS is set. * Gyp syntax check is always on * Gyp circular dependency check is always on * No support for automatic toolchain detection on Windows. * --depth argument is no longer needed since calculated by the script. * Support for a webrtc.gyp_env file sitting next to the .gclient file in the top dir of checkout, which can be used to override Gyp variables similar to chromium.gyp_env. * SKIP_WEBRTC_GYP_ENV can be set to skip reading webrtc.gyp_env. BUG=2863 TEST=Ran and verified behavior on Linux with: gclient runhooks webrtc/build/gyp_webrtc webrtc/build/gyp_webrtc -Dextra_gyp_flag=0 . build/android/envsetup.sh && gclient runhooks SKIP_WEBRTC_GYP_ENV=1 webrtc/build/gyp_webrtc GYP_GENERATORS=make webrtc/build/gyp_webrtc The patch also passes runhooks and compile step on all trybots. R=andrew@webrtc.org, fischman@webrtc.org Review URL: https://webrtc-codereview.appspot.com/7759004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@5467 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-31 10:34:51 +01:00
"action": ["python", Var("root_dir") + "/webrtc/build/gyp_webrtc",
Var("extra_gyp_flag")],
},
]