webrtc/DEPS

316 lines
10 KiB
Plaintext
Raw Normal View History

use_relative_paths = True
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",
"sourceforge_url": "http://svn.code.sf.net/p/%(repo)s/code",
"chromium_trunk" : "http://src.chromium.org/svn/trunk",
"chromium_revision": "249215",
# A small subset of WebKit is needed for the Android Python test framework.
"webkit_trunk": "http://src.chromium.org/blink/trunk",
}
# NOTE: Prefer revision numbers to tags for svn deps. Use http rather than
# https; the latter can cause problems for users behind proxies.
deps = {
"../chromium_deps":
File(Var("chromium_trunk") + "/src/DEPS@" + Var("chromium_revision")),
"../chromium_gn":
File(Var("chromium_trunk") + "/src/.gn@" + Var("chromium_revision")),
"build":
Var("chromium_trunk") + "/src/build@" + Var("chromium_revision"),
# Needed by common.gypi.
"google_apis/build":
Var("chromium_trunk") + "/src/google_apis/build@" + Var("chromium_revision"),
"testing":
Var("chromium_trunk") + "/src/testing@" + Var("chromium_revision"),
"testing/gmock":
From("chromium_deps", "src/testing/gmock"),
"testing/gtest":
From("chromium_deps", "src/testing/gtest"),
"third_party/clang_format":
Var("chromium_trunk") + "/src/third_party/clang_format@" + Var("chromium_revision"),
"third_party/clang_format/script":
From("chromium_deps", "src/third_party/clang_format/script"),
"third_party/expat":
Var("chromium_trunk") + "/src/third_party/expat@" + Var("chromium_revision"),
# When rolling gflags, also update deps/third_party/webrtc/webrtc.DEPS/DEPS
# in Chromium's repo.
"third_party/gflags/src":
(Var("googlecode_url") % "gflags") + "/trunk/src@84",
"third_party/icu/":
From("chromium_deps", "src/third_party/icu"),
"third_party/jsoncpp/":
Var("chromium_trunk") + "/src/third_party/jsoncpp@" + Var("chromium_revision"),
"third_party/jsoncpp/source":
(Var("sourceforge_url") % {"repo": "jsoncpp"}) + "/trunk/jsoncpp@248",
"third_party/junit/":
(Var("googlecode_url") % "webrtc") + "/deps/third_party/junit@3367",
"third_party/libjpeg":
Var("chromium_trunk") + "/src/third_party/libjpeg@" + Var("chromium_revision"),
"third_party/libjpeg_turbo":
From("chromium_deps", "src/third_party/libjpeg_turbo"),
"third_party/libsrtp/":
From("chromium_deps", "src/third_party/libsrtp"),
"third_party/libvpx":
Var("chromium_trunk") + "/deps/third_party/libvpx@251850",
"third_party/libyuv":
(Var("googlecode_url") % "libyuv") + "/trunk@979",
"third_party/opus":
Var("chromium_trunk") + "/src/third_party/opus@245176",
"third_party/opus/src":
Var("chromium_trunk") + "/deps/third_party/opus@239448",
"third_party/protobuf":
Var("chromium_trunk") + "/src/third_party/protobuf@" + Var("chromium_revision"),
"third_party/sqlite/":
Var("chromium_trunk") + "/src/third_party/sqlite@" + Var("chromium_revision"),
"third_party/yasm":
Var("chromium_trunk") + "/src/third_party/yasm@" + Var("chromium_revision"),
"third_party/yasm/source/patched-yasm":
From("chromium_deps", "src/third_party/yasm/source/patched-yasm"),
"tools/clang":
Var("chromium_trunk") + "/src/tools/clang@" + Var("chromium_revision"),
"tools/gn":
Var("chromium_trunk") + "/src/tools/gn@" + Var("chromium_revision"),
"tools/gyp":
From("chromium_deps", "src/tools/gyp"),
"tools/protoc_wrapper":
Var("chromium_trunk") + "/src/tools/protoc_wrapper@" + Var("chromium_revision"),
"tools/python":
Var("chromium_trunk") + "/src/tools/python@" + Var("chromium_revision"),
"tools/swarming_client":
From("chromium_deps", "src/tools/swarming_client"),
Isolate GYP target and .isolate files for tests This is a re-land attempt of http://review.webrtc.org/1673004/ It now includes a build/isolate.gypi in WebRTC that includes the same file as the one that would be included when WebRTC is used in a Chromium checkout. It is needed since it is not possible to use variables in GYP's includes sections. Implemented according to the instructions at http://www.chromium.org/developers/testing/isolated-testing Workflow has been like this: 1. create _run GYP target 2. create a stripped down .isolate file 3. export GYP_DEFINES="$GYP_DEFINES test_isolation_mode=check" 4. runhooks 5. compile 6. test if the test would run (i.e. find it's dependencies) without actually executing it: tools/swarm_client/isolate.py run --isolated out/Release/testname.isolated 7. If failing, run the fix_test_cases.py script like this: tools/swarm_client/googletest/fix_test_cases.py --isolated out/Release/testname.isolated All tests that run on the bots for WebRTC has got _run target and .isolate file created. "Normal tests" that run fine on any machine: * audio_decoder_unittests * common_audio_unittests * common_video_unittests * metrics_unittests * modules_tests * modules_unittests * neteq_unittests * system_wrappers_unittests * test_support_unittests * tools_unittests * video_engine_core_unittests * voice_engine_unittests Tests that requires bare-metal and audio/video devices: * audio_device_tests * video_capture_tests I also added the isolate boilerplate code for the following tests that are not yet pure gtest binaries (which means they cannot run isolated yet): * video_render_tests * vie_auto_test * voe_auto_test TEST=running isolate.py as described above. WebRTC trybots passing. Created a Chromium checkout with third_party/webrtc ToT and this patch applied, passing the runhooks step. BUG=1916 R=henrike@webrtc.org, tommi@webrtc.org Review URL: https://webrtc-codereview.appspot.com/2056004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4590 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-22 07:57:00 +00:00
"tools/valgrind":
Var("chromium_trunk") + "/src/tools/valgrind@" + Var("chromium_revision"),
# Needed by build/common.gypi.
"tools/win/supalink":
Var("chromium_trunk") + "/src/tools/win/supalink@" + Var("chromium_revision"),
"net/third_party/nss":
Var("chromium_trunk") + "/src/net/third_party/nss@" + Var("chromium_revision"),
"third_party/usrsctp/":
Var("chromium_trunk") + "/src/third_party/usrsctp@" + Var("chromium_revision"),
"third_party/usrsctp/usrsctplib":
(Var("googlecode_url") % "sctp-refimpl") + "/trunk/KERN/usrsctp/usrsctplib@8723",
}
deps_os = {
"win": {
"third_party/winsdk_samples/src":
(Var("googlecode_url") % "webrtc") + "/deps/third_party/winsdk_samples_v71@3145",
# Used by libjpeg-turbo.
"third_party/yasm/binaries":
From("chromium_deps", "src/third_party/yasm/binaries"),
# NSS, for SSLClientSocketNSS.
"third_party/nss":
From("chromium_deps", "src/third_party/nss"),
# SyzyASan to make it possible to run tests under ASan on Windows.
"third_party/syzygy/binaries":
From("chromium_deps", "src/third_party/syzygy/binaries"),
},
"mac": {
# NSS, for SSLClientSocketNSS.
"third_party/nss":
From("chromium_deps", "src/third_party/nss"),
},
"ios": {
# NSS, for SSLClientSocketNSS.
"third_party/nss":
From("chromium_deps", "src/third_party/nss"),
AppRTCDemo: builds using ninja on iOS for simulator and device! Things included in this CL: - updated READMEs to provide an exact/reproable set of steps for getting the app running. - gyp changes to build the iOS AppRTCDemo sample app using gyp+ninja instead of the hand-crafted Xcode project (which has never worked in its checked-in form), including a gyp action to sign the sample app for deployment to an iOS device (the app can also be used in the simulator) - deleted the busted hand-crafted Xcode project for the sample app - updated the sample app to match the PeerConnection API that ended up landing (in a surprising twist of fate, the API landed quite a bit later than the sample app and this is the first time the CR-time changes in the API are reflected in the sample app) - updated the sample app to reflect apprtc.appspot.com HTML/JS changes (equiv to the AppRTCClient.java changes in http://s10/47299162) - picked up the iossim DEPS to enable launching the sample app in the simulator from the command-line. - renamed some files to match capitalization of the classes they contain (Ice -> ICE) per ObjC naming guidelines. - ran the files involved in this CL through clang-format to deal with xcode formatting craxy. BUG=2106 RISK=P2 TESTED=unittest builds with ninja and passes on OS=mac; sample app builds with ninja and runs on simulator and device, though no audio flows from simulator/device (will fix in a follow-up CL) R=andrew@webrtc.org, justincohen@google.com, wu@webrtc.org Review URL: https://webrtc-codereview.appspot.com/1874005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4466 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-01 18:29:45 +00:00
# class-dump utility to generate header files for undocumented SDKs.
"testing/iossim/third_party/class-dump":
From("chromium_deps", "src/testing/iossim/third_party/class-dump"),
# Helper for running under the simulator.
"testing/iossim":
Var("chromium_trunk") + "/src/testing/iossim@" + Var("chromium_revision"),
},
"unix": {
"third_party/gold":
From("chromium_deps", "src/third_party/gold"),
},
Android NDK build tools This CL enables building with Android NDK in the way that Chromium buildbots do it. == Overview == * Add Android dependencies to DEPS (SDK, NDK, Android test runner). This also makes it possible to use Android's build/android/run_tests.py script to execute tests on Android devices. * Add a Python script to build the WebRTC Video demo for Android using ndk-build and Ant. This is designed as an annotation script for Buildbots but is also fine to run locally. * Update Android.mk so it works with the compiler output from a build performed by build/android/buildbot/bb_run_bot.py (which is how Chrome buildbots build). == Syncing Android dependencies == To get the dependencies added in DEPS synced out, you must change the last line of your .gclient file to look like this: ];target_os = ["android"] That will append another variable to the .gclient file that causes these dependencies to be synced during gclient sync. If you want to get additional platform-specific dependencies in the same checkout, add them to the list too, e.g. target_os = ["android", "unix"]. == Android.mk == The fix in Android.mk is needed since Chrome is building using build/android/buildbot/bb_run_bot.py, which only output the libraries into out/Debug. With the change it works for both that and a normal build (which copies the library files from out/Debug/obj.target/subpath to out/Debug anyway as a part of the build). == svn:ignore == NOTICE: Before submitting, the following directories should be added to svn:ignore in third_party to avoid them from being removed and re-synced for every build: * android_testrunner * android_tools * WebKit This has to be done in a manual SVN commit since it's not possible to include in a git-svn CL (and I don't want to migrate this to a SVN CL). BUG=none TEST=local builds Review URL: https://webrtc-codereview.appspot.com/1024009 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3497 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-11 17:43:19 +00:00
"android": {
# Precompiled tools needed for Android test execution. Needed since we can't
# compile them from source in WebRTC since they depend on Chromium's base.
"tools/android":
(Var("googlecode_url") % "webrtc") + "/deps/tools/android@4258",
Android NDK build tools This CL enables building with Android NDK in the way that Chromium buildbots do it. == Overview == * Add Android dependencies to DEPS (SDK, NDK, Android test runner). This also makes it possible to use Android's build/android/run_tests.py script to execute tests on Android devices. * Add a Python script to build the WebRTC Video demo for Android using ndk-build and Ant. This is designed as an annotation script for Buildbots but is also fine to run locally. * Update Android.mk so it works with the compiler output from a build performed by build/android/buildbot/bb_run_bot.py (which is how Chrome buildbots build). == Syncing Android dependencies == To get the dependencies added in DEPS synced out, you must change the last line of your .gclient file to look like this: ];target_os = ["android"] That will append another variable to the .gclient file that causes these dependencies to be synced during gclient sync. If you want to get additional platform-specific dependencies in the same checkout, add them to the list too, e.g. target_os = ["android", "unix"]. == Android.mk == The fix in Android.mk is needed since Chrome is building using build/android/buildbot/bb_run_bot.py, which only output the libraries into out/Debug. With the change it works for both that and a normal build (which copies the library files from out/Debug/obj.target/subpath to out/Debug anyway as a part of the build). == svn:ignore == NOTICE: Before submitting, the following directories should be added to svn:ignore in third_party to avoid them from being removed and re-synced for every build: * android_testrunner * android_tools * WebKit This has to be done in a manual SVN commit since it's not possible to include in a git-svn CL (and I don't want to migrate this to a SVN CL). BUG=none TEST=local builds Review URL: https://webrtc-codereview.appspot.com/1024009 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3497 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-11 17:43:19 +00:00
"third_party/android_tools":
From("chromium_deps", "src/third_party/android_tools"),
"third_party/android_testrunner":
Var("chromium_trunk") + "/src/third_party/android_testrunner@" + Var("chromium_revision"),
"third_party/WebKit/Tools/Scripts":
Var("webkit_trunk") + "/Tools/Scripts@151677",
"third_party/openssl":
From("chromium_deps", "src/third_party/openssl"),
Android NDK build tools This CL enables building with Android NDK in the way that Chromium buildbots do it. == Overview == * Add Android dependencies to DEPS (SDK, NDK, Android test runner). This also makes it possible to use Android's build/android/run_tests.py script to execute tests on Android devices. * Add a Python script to build the WebRTC Video demo for Android using ndk-build and Ant. This is designed as an annotation script for Buildbots but is also fine to run locally. * Update Android.mk so it works with the compiler output from a build performed by build/android/buildbot/bb_run_bot.py (which is how Chrome buildbots build). == Syncing Android dependencies == To get the dependencies added in DEPS synced out, you must change the last line of your .gclient file to look like this: ];target_os = ["android"] That will append another variable to the .gclient file that causes these dependencies to be synced during gclient sync. If you want to get additional platform-specific dependencies in the same checkout, add them to the list too, e.g. target_os = ["android", "unix"]. == Android.mk == The fix in Android.mk is needed since Chrome is building using build/android/buildbot/bb_run_bot.py, which only output the libraries into out/Debug. With the change it works for both that and a normal build (which copies the library files from out/Debug/obj.target/subpath to out/Debug anyway as a part of the build). == svn:ignore == NOTICE: Before submitting, the following directories should be added to svn:ignore in third_party to avoid them from being removed and re-synced for every build: * android_testrunner * android_tools * WebKit This has to be done in a manual SVN commit since it's not possible to include in a git-svn CL (and I don't want to migrate this to a SVN CL). BUG=none TEST=local builds Review URL: https://webrtc-codereview.appspot.com/1024009 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3497 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-11 17:43:19 +00:00
},
}
hooks = [
{
# Copy .gn from temporary place (../chromium_gn) to root_dir.
"name": "copy .gn",
"pattern": ".",
"action": ["python", Var("root_dir") + "/build/cp.py",
Var("root_dir") + "/../chromium_gn/.gn",
Var("root_dir")],
},
# Pull GN binaries. This needs to be before running GYP below.
{
"name": "gn_win",
"pattern": "tools/gn/bin/win/gn.exe.sha1",
"action": [ "download_from_google_storage",
"--no_resume",
"--platform=win32",
"--no_auth",
"--bucket", "chromium-gn",
"-s", Var("root_dir") + "/tools/gn/bin/win/gn.exe.sha1",
],
},
{
"name": "gn_mac",
"pattern": "tools/gn/bin/mac/gn.sha1",
"action": [ "download_from_google_storage",
"--no_resume",
"--platform=darwin",
"--no_auth",
"--bucket", "chromium-gn",
"-s", Var("root_dir") + "/tools/gn/bin/mac/gn.sha1",
],
},
{
"name": "gn_linux",
"pattern": "tools/gn/bin/linux/gn.sha1",
"action": [ "download_from_google_storage",
"--no_resume",
"--platform=linux*",
"--no_auth",
"--bucket", "chromium-gn",
"-s", Var("root_dir") + "/tools/gn/bin/linux/gn.sha1",
],
},
{
"name": "gn_linux32",
"pattern": "tools/gn/bin/linux/gn32.sha1",
"action": [ "download_from_google_storage",
"--no_resume",
"--platform=linux*",
"--no_auth",
"--bucket", "chromium-gn",
"-s", Var("root_dir") + "/tools/gn/bin/linux/gn32.sha1",
],
},
# Pull clang-format binaries using checked-in hashes.
{
"name": "clang_format_win",
"pattern": "third_party/clang_format/bin/win/clang-format.exe.sha1",
"action": [ "download_from_google_storage",
"--no_resume",
"--platform=win32",
"--no_auth",
"--bucket", "chromium-clang-format",
"-s", Var("root_dir") + "/third_party/clang_format/bin/win/clang-format.exe.sha1",
],
},
{
"name": "clang_format_mac",
"pattern": "third_party/clang_format/bin/mac/clang-format.sha1",
"action": [ "download_from_google_storage",
"--no_resume",
"--platform=darwin",
"--no_auth",
"--bucket", "chromium-clang-format",
"-s", Var("root_dir") + "/third_party/clang_format/bin/mac/clang-format.sha1",
],
},
{
"name": "clang_format_linux",
"pattern": "third_party/clang_format/bin/linux/clang-format.sha1",
"action": [ "download_from_google_storage",
"--no_resume",
"--platform=linux*",
"--no_auth",
"--bucket", "chromium-clang-format",
"-s", Var("root_dir") + "/third_party/clang_format/bin/linux/clang-format.sha1",
],
},
{
# Pull clang on mac. If nothing changed, or on non-mac platforms, this takes
# zero seconds to run. If something changed, it downloads a prebuilt clang.
"pattern": ".",
"action": ["python", Var("root_dir") + "/tools/clang/scripts/update.py",
"--mac-only"],
},
{
# Download test resources, i.e. video and audio files from Google Storage.
"pattern": "\\.sha1",
"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.
"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 09:34:51 +00:00
"action": ["python", Var("root_dir") + "/webrtc/build/gyp_webrtc",
Var("extra_gyp_flag")],
},
]