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",
  # chrome://version/ for revision of canary Chrome.
  # http://chromium-status.appspot.com/lkgr is a last known good revision.
  "chromium_revision": "288251",

  # 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"),

  "buildtools":
    From("chromium_deps", "src/buildtools"),

  # 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/binutils":
    Var("chromium_trunk") + "/src/third_party/binutils@" + Var("chromium_revision"),

  "third_party/build_gn":
    File(Var("chromium_trunk") + "/src/third_party/BUILD.gn@" + Var("chromium_revision")),

  "third_party/clang_format":
    Var("chromium_trunk") + "/src/third_party/clang_format@" + Var("chromium_revision"),

  "third_party/colorama/src":
    From("chromium_deps", "src/third_party/colorama/src"),

  "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/libc++":
    Var("chromium_trunk") + "/src/third_party/libc++@" + Var("chromium_revision"),

  "third_party/libc++/trunk":
    From("chromium_deps", "src/third_party/libc++/trunk"),

  "third_party/libc++abi":
    Var("chromium_trunk") + "/src/third_party/libc++abi@" + Var("chromium_revision"),

  "third_party/libc++abi/trunk":
    From("chromium_deps", "src/third_party/libc++abi/trunk"),

  "third_party/openmax_dl/":
    (Var("googlecode_url") % "webrtc") + "/deps/third_party/openmax@6096",

  "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":
    From("chromium_deps", "src/third_party/libvpx"),

  "third_party/libyuv":
    (Var("googlecode_url") % "libyuv") + "/trunk@1038",

  "third_party/opus":
    Var("chromium_trunk") + "/src/third_party/opus@" + Var("chromium_revision"),

  "third_party/opus/src":
    From("chromium_deps", "src/third_party/opus/src"),

  "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/generate_library_loader":
    Var("chromium_trunk") + "/src/tools/generate_library_loader@" + Var("chromium_revision"),

  "tools/gn":
    Var("chromium_trunk") + "/src/tools/gn@" + Var("chromium_revision"),

  "tools/gyp":
    From("chromium_deps", "src/tools/gyp"),

  "tools/memory":
    Var("chromium_trunk") + "/src/tools/memory@" + Var("chromium_revision"),

  "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/sanitizer_options":
    File(Var("chromium_trunk") + "/src/base/debug/sanitizer_options.cc@" + Var("chromium_revision")),

  "tools/swarming_client":
    From("chromium_deps", "src/tools/swarming_client"),

  "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/boringssl":
    Var("chromium_trunk") + "/src/third_party/boringssl@" + Var("chromium_revision"),

  "third_party/boringssl/src":
    From("chromium_deps", "src/third_party/boringssl/src"),

  "third_party/usrsctp/":
    Var("chromium_trunk") + "/src/third_party/usrsctp@" + Var("chromium_revision"),

  "third_party/usrsctp/usrsctplib":
    From("chromium_deps", "src/third_party/usrsctp/usrsctplib"),
}

deps_os = {
  "win": {
    "third_party/drmemory":
      Var("chromium_trunk") + "/src/third_party/drmemory@" + Var("chromium_revision"),

    "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"),

    "tools/find_depot_tools":
      File(Var("chromium_trunk") + "/src/tools/find_depot_tools.py@" + Var("chromium_revision")),
  },

  "mac": {
    # NSS, for SSLClientSocketNSS.
    "third_party/nss":
      From("chromium_deps", "src/third_party/nss"),

    # TODO(kjellander): remove once bug 2152 is fixed.
    # This needs to specify the path directly (instead of using the
    # chromium_deps version) because chromium_deps only defines this for ios.
    "testing/iossim/third_party/class-dump":
      Var("chromium_trunk") + "/deps/third_party/class-dump@199203",
  },

  "ios": {
    # NSS, for SSLClientSocketNSS.
    "third_party/nss":
      From("chromium_deps", "src/third_party/nss"),

    # 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"),
  },

  "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@6306",

    "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",

  },
}

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")],
  },
  {
    # Copy BUILD.gn from temporary place (third_party/build_gn) to third_party.
    "name": "copy third_party/BUILD.gn",
    "pattern": ".",
    "action": ["python", Var("root_dir") + "/build/cp.py",
               Var("root_dir") + "/third_party/build_gn/BUILD.gn",
               Var("root_dir") + "/third_party"],
  },
  # Pull GN binaries. This needs to be before running GYP below.
  {
    "name": "gn_win",
    "pattern": ".",
    "action": [ "download_from_google_storage",
                "--no_resume",
                "--platform=win32",
                "--no_auth",
                "--bucket", "chromium-gn",
                "-s", Var("root_dir") + "/buildtools/win/gn.exe.sha1",
    ],
  },
  {
    "name": "gn_mac",
    "pattern": ".",
    "action": [ "download_from_google_storage",
                "--no_resume",
                "--platform=darwin",
                "--no_auth",
                "--bucket", "chromium-gn",
                "-s", Var("root_dir") + "/buildtools/mac/gn.sha1",
    ],
  },
  {
    "name": "gn_linux",
    "pattern": ".",
    "action": [ "download_from_google_storage",
                "--no_resume",
                "--platform=linux*",
                "--no_auth",
                "--bucket", "chromium-gn",
                "-s", Var("root_dir") + "/buildtools/linux64/gn.sha1",
    ],
  },
  {
    "name": "gn_linux32",
    "pattern": ".",
    "action": [ "download_from_google_storage",
                "--no_resume",
                "--platform=linux*",
                "--no_auth",
                "--bucket", "chromium-gn",
                "-s", Var("root_dir") + "/buildtools/linux32/gn.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") + "/buildtools/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") + "/buildtools/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") + "/buildtools/linux64/clang-format.sha1",
    ],
  },
  {
    # Pull clang if on Mac or clang is requested via GYP_DEFINES.
    "pattern": ".",
    "action": ["python", Var("root_dir") + "/tools/clang/scripts/update.py",
               "--if-needed"],
  },
  {
    # Update the Windows toolchain if necessary.
    "name": "win_toolchain",
    "pattern": ".",
    "action": ["python",
               Var("root_dir") + "/webrtc/build/download_vs_toolchain.py",
               "update"],
  },
  {
    # Pull binutils for gold.
    "name": "binutils",
    "pattern": ".",
    "action": ["python", Var("root_dir") + "/third_party/binutils/download.py"],
  },
  {
    "name": "drmemory",
    "pattern": ".",
    "action": [ "download_from_google_storage",
                "--no_resume",
                "--platform=win32",
                "--no_auth",
                "--bucket", "chromium-drmemory",
                "-s", Var("root_dir") + "/third_party/drmemory/drmemory-windows-sfx.exe.sha1",
    ],
  },
  {
    # Pull the Syzygy binaries, used for optimization and instrumentation.
    "name": "syzygy-binaries",
    "pattern": ".",
    "action": ["python",
               Var("root_dir") + "/build/get_syzygy_binaries.py",
               "--output-dir=%s/third_party/syzygy/binaries" % Var("root_dir"),
               "--revision=b08fb72610963d31cc3eae33f746a04e263bd860",
               "--overwrite",
    ],
  },
  {
    # 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.
    "name": "gyp",
    "pattern": ".",
    "action": ["python", Var("root_dir") + "/webrtc/build/gyp_webrtc",
               Var("extra_gyp_flag")],
  },
]