
import gclient_utils
import os

path = gclient_utils.FindGclientRoot(os.getcwd())
execfile(os.path.join(path, 'src', 'dart', 'tools', 'deps', 'dartium.deps', 'DEPS.chromium')) # Include proper Chromium DEPS.

# Now we need to override some settings and add some new ones.

vars.update({
  "chromium_url": "http://src.chromium.org/svn",
  "dartium_base": "http://src.chromium.org",
  "dartium_chromium_branch": "master",
  "dartium_chromium_commit": "62a7524d4f71c9e0858d24b0aa1bbff3a2d09bff",
  "chromium_base_revision": "297060",
  "dartium_webkit_branch": "/blink/branches/dart/dartium",
  "dartium_webkit_revision": "202760",

  # We use mirrors of all github repos to guarantee reproducibility and
  # consistency between what users see and what the bots see.
  # We need the mirrors to not have 100+ bots pulling github constantly.
  # We mirror our github repos on chromium git servers.
  # DO NOT use this var if you don't see a mirror here:
  #   https://chromium.googlesource.com/
  # named like:
  #   external/github.com/dart-lang/NAME
  # It is ok to add a dependency directly on dart-lang (dart-lang only)
  # github repo until the mirror has been created, but please do file a bug
  # against infra to make that happen.
  "github_mirror":
      "https://chromium.googlesource.com/external/github.com/dart-lang/%s.git",

  "args_tag": "@0.13.0",
  "barback_rev" : "@29ee90dbcf77cfd64632fa2797a4c8a4f29a4b51",
  "charcode_tag": "@1.1.0",
  "collection_rev": "@f6135e6350c63eb3f4dd12953b8d4363faff16fc",
  "crypto_rev" : "@2df57a1e26dd88e8d0614207d4b062c73209917d",
  "csslib_tag" : "@0.12.0",
  "dart2js_info_rev" : "@0a221eaf16aec3879c45719de656680ccb80d8a1",
  "glob_rev": "@704cf75e4f26b417505c5c611bdaacd8808467dd",
  "html_tag" : "@0.12.1+1",
  "http_rev" : "@9b93e1542c753090c50b46ef1592d44bc858bfe7",
  "http_multi_server_tag" : "@1.3.2",
  "http_parser_rev" : "@8b179e36aba985208e4c5fb15cfddd386b6370a4",
  "http_throttle_rev" : "@a81f08be942cdd608883c7b67795c12226abc235",
  "json_rpc_2_rev": "@a38eefd116d910199de205f962af92fed87c164c",
  "logging_rev": "@85d83e002670545e9039ad3985f0018ab640e597",
  "matcher_tag": "@0.12.0",
  "mime_rev": "@75890811d4af5af080351ba8a2853ad4c8df98dd",
  "metatest_rev": "@e5aa8e4e19fc4188ac2f6d38368a47d8f07c3df1",
  "oauth2_rev": "@1bff41f4d54505c36f2d1a001b83b8b745c452f5",
  "observatory_pub_packages_rev": "@cf90eb9077177d3d6b3fd5e8289477c2385c026a",
  "package_config_rev": "@0.1.3",
  "path_rev": "@b657c0854d1cf41c014986fa9d2321f1173df805",
  "plugin_tag": "@0.1.0",
  "pool_rev": "@22e12aeb16ad0b626900dbe79e4a25391ddfb28c",
  "pub_rev": "@9d707158fedc86fc2b02f62cdfe804902b098d9d",
  "pub_semver_tag": "@1.2.0",
  "quiver_tag": "@0.21.4",
  "shelf_rev": "@1e87b79b21ac5e6fa2f93576d6c06eaa65285ef4",
  "shelf_web_socket_rev": "@ff170cec2c0e4e5722cdf47c557be63b5035a602",
  "source_span_rev": "@42501132e43599a151ba6727d340e44442f86c05",
  "stack_trace_tag": "@1.2.1",
  "string_scanner_rev": "@3e7617d6f74ba382e9b6130b1cc12091d89a9bc5",
  "test_tag": "@0.12.1",
  "unittest_tag": "@0.11.6",
  "utf_rev": "@1f55027068759e2d52f2c12de6a57cce5f3c5ee6",
  "watcher_tag": "@0.9.5",
  "yaml_rev": "@563a5ffd4a800a2897b8f4dd6b19f2a370df2f2b",
  "zlib_rev": "@c3d0a6190f2f8c924a05ab6cc97b8f975bddd33f",
  "web_components_rev": "@0e636b534d9b12c9e96f841e6679398e91a986ec",
  "WebCore_rev": "@4f90b41b0165f23f412cecdba07b7d81d3fbb5b5",

  "co19_rev": "@3ed795ea02e022ef19c77cf1b6095b7c8f5584d0",
})

def massage_deps(deps):
  for key, value in deps.items():
    if value is None: continue

    if value.startswith('/trunk'):
      deps[key] = Var("chromium_url") + value
      continue

    if value.startswith(Var("webkit_trunk")):
      path, revision = value.split('@') # and svn revision.
      path = path[len(Var("webkit_trunk")):]  # Strip WebKit repo.
      value = (Var("dartium_base") + Var("dartium_webkit_branch") + path +
               '@' + Var("dartium_webkit_revision"))
      deps[key] = value
      continue

massage_deps(deps)
for os_deps in deps_os.values():
  massage_deps(os_deps)

deps.update({
  "src":
    Var("chromium_git") + "/dart/dartium/src.git" + "@" +
        Var("dartium_chromium_commit"),

  "src/third_party/WebKit":
    Var("dartium_base") + Var("dartium_webkit_branch") + "@" +
        Var("dartium_webkit_revision"),

  "src/dart/third_party/pkg/args":
      (Var("github_mirror") % "args") + Var("args_tag"),
  "src/dart/third_party/pkg/barback":
      (Var("github_mirror") % "barback") + Var("barback_rev"),
  "src/dart/third_party/pkg/charcode":
      (Var("github_mirror") % "charcode") + Var("charcode_tag"),
  "src/dart/third_party/pkg/crypto":
      (Var("github_mirror") % "crypto") + Var("crypto_rev"),
  "src/dart/third_party/pkg/csslib":
      (Var("github_mirror") % "csslib") + Var("csslib_tag"),
  "src/dart/third_party/pkg/dart2js_info":
      (Var("github_mirror") % "dart2js_info") + Var("dart2js_info_rev"),
  "src/dart/third_party/pkg/collection":
      (Var("github_mirror") % "collection") + Var("collection_rev"),
  "src/dart/third_party/pkg/glob":
      (Var("github_mirror") % "glob") + Var("glob_rev"),
  "src/dart/third_party/pkg/html":
      (Var("github_mirror") % "html") + Var("html_tag"),
  "src/dart/third_party/pkg/json_rpc_2":
      (Var("github_mirror") % "json_rpc_2") + Var("json_rpc_2_rev"),
  "src/dart/third_party/pkg/http":
      (Var("github_mirror") % "http") + Var("http_rev"),
  "src/dart/third_party/pkg/http_multi_server":
      (Var("github_mirror") % "http_multi_server") +
      Var("http_multi_server_tag"),
  "src/dart/third_party/pkg/http_parser":
      (Var("github_mirror") % "http_parser") + Var("http_parser_rev"),
  "src/dart/third_party/pkg/http_throttle":
      (Var("github_mirror") % "http_throttle") + Var("http_throttle_rev"),
  "src/dart/third_party/pkg/logging":
      (Var("github_mirror") % "logging") + Var("logging_rev"),
  "src/dart/third_party/pkg/matcher":
      (Var("github_mirror") % "matcher") + Var("matcher_tag"),
  "src/dart/third_party/pkg/metatest":
      (Var("github_mirror") % "metatest") + Var("metatest_rev"),
  "src/dart/third_party/pkg/mime":
      (Var("github_mirror") % "mime") + Var("mime_rev"),
  "src/dart/third_party/pkg/oauth2":
      (Var("github_mirror") % "oauth2") + Var("oauth2_rev"),
  "src/dart/third_party/observatory_pub_packages":
      (Var("github_mirror") % "observatory_pub_packages") +
      Var("observatory_pub_packages_rev"),
  "src/dart/third_party/pkg/package_config":
      (Var("github_mirror") % "package_config") + Var("package_config_rev"),
  "src/dart/third_party/pkg/path":
      (Var("github_mirror") % "path") + Var("path_rev"),
  "src/dart/third_party/pkg/plugin":
      (Var("github_mirror") % "plugin") + Var("plugin_tag"),
  "src/dart/third_party/pkg/pool":
      (Var("github_mirror") % "pool") + Var("pool_rev"),
  "src/dart/third_party/pkg/pub":
      (Var("github_mirror") % "pub") + Var("pub_rev"),
  "src/dart/third_party/pkg/pub_semver":
      (Var("github_mirror") % "pub_semver") + Var("pub_semver_tag"),
  "src/dart/third_party/pkg/quiver":
      Var("chromium_git")
      + "/external/github.com/google/quiver-dart.git"
      + Var("quiver_tag"),
  "src/dart/third_party/pkg/shelf":
      (Var("github_mirror") % "shelf") + Var("shelf_rev"),
  "src/dart/third_party/pkg/shelf_web_socket":
      (Var("github_mirror") % "shelf_web_socket") + Var("shelf_web_socket_rev"),
  "src/dart/third_party/pkg/source_span":
      (Var("github_mirror") % "source_span") + Var("source_span_rev"),
  "src/dart/third_party/pkg/stack_trace":
      (Var("github_mirror") % "stack_trace") + Var("stack_trace_tag"),
  "src/dart/third_party/pkg/string_scanner":
      (Var("github_mirror") % "string_scanner") + Var("string_scanner_rev"),
  "src/dart/third_party/pkg/test":
      (Var("github_mirror") % "test") + Var("test_tag"),
  "src/dart/third_party/pkg/utf":
      (Var("github_mirror") % "utf") + Var("utf_rev"),
  "src/dart/third_party/pkg/watcher":
      (Var("github_mirror") % "watcher") + Var("watcher_tag"),
  "src/dart/third_party/pkg/web_components":
      (Var("github_mirror") % "web-components") + Var("web_components_rev"),
  "src/dart/third_party/pkg/yaml":
      (Var("github_mirror") % "yaml") + Var("yaml_rev"),

  # TODO(sigmund): should be src/dart/third_party/pkg/unittest (dartbug.com/21949)
  "src/dart/pkg/unittest":
      (Var("github_mirror") % "test") + Var("unittest_tag"),

  "src/dart/third_party/WebCore":
    "https://github.com/dart-lang/webcore.git" + Var("WebCore_rev"),

  "src/dart/tests/co19/src":
      (Var("github_mirror") % "co19") + Var("co19_rev"),

  "src/dart/third_party/zlib":
      Var("chromium_git") + "/chromium/src/third_party/zlib.git" +
      Var("zlib_rev"),
})

deps_os['win'].update({
  "src/chrome/tools/test/reference_build/chrome_win": None
})
deps_os['mac'].update({
  "src/chrome/tools/test/reference_build/chrome_mac": None
})
deps_os['unix'].update({
  "src/chrome/tools/test/reference_build/chrome_linux": None
})

hooks[0:0] = [{
    "pattern": "dart",
    "action": ["python", "src/dart/tools/dartium/generate_dart_vm_version.py"],
  }]

hooks.append({
  # Set the revision for a lazily downloaded reference build of chromium,
  # with which to run perf tests.
  'name': 'set_reference_build',
  'pattern': '.',
  'action': ['python',
             'src/dart/tools/bots/set_reference_build_revision.py',
             Var('chromium_base_revision')],
})
hooks.append({
  # Peg the blink version number in LASTCHANGE.blink to be the upstream
  # webkit_revision number so that chrome remote devtools pulls assets from
  # the right place.
  "name": "lastchange",
  "pattern": ".",
  "action": ["python", "-c",
      "f=open('src/build/util/LASTCHANGE.blink','w'); f.write('LASTCHANGE=" +
      Var('webkit_revision') + "\\n')" ],
})
hooks.append({
  "name": "checked_in_dart_binaries",
  "pattern": ".",
  "action": [
    "download_from_google_storage",
    "--no_auth",
    "--no_resume",
    "--bucket",
    "dart-dependencies",
    "--recursive",
    "--directory",
    "src/dart/tools/testing/bin",
  ],
})
hooks.append({
  "name": "checked_in_dart_sdks",
  "pattern": ".",
  "action": [
    "download_from_google_storage",
    "--no_auth",
    "--no_resume",
    "--bucket",
    "dart-dependencies",
    "--recursive",
    "--auto_platform",
    "--extract",
    "--directory",
    "src/dart/tools/sdks",
  ],
})
