# Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

vars = {
  # 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",

  "gyp_rev": "@1752",
  "co19_rev": "@801",
  "chromium_url": "http://src.chromium.org/svn",
  "chromium_git": "https://chromium.googlesource.com",

  # Revisions of /third_party/* dependencies.
  "7zip_rev" : "@19997",
  "android_adb_rev" : "@36744",
  "android_content_shell_rev" : "@37275",
  "apache_ant_rev" : "@19997",
  "apache_compress_rev" : "@19997",
  "apache_http_rev" : "@37872",
  "args_rev" : "@2699ca11b09158ab23ff4cb464ab255e89cc2f27",
  "args4j_rev" : "@19997",
  "barback_rev" : "@29ee90dbcf77cfd64632fa2797a4c8a4f29a4b51",
  "bzip2_rev" : "@19997",
  "chrome_rev" : "@19997",
  "clang_rev" : "@28450",
  "collection_rev": "@1da9a07f32efa2ba0c391b289e2037391e31da0e",
  "commons-io_rev" : "@19997",
  "commons-lang_rev" : "@33092",
  "crypto_rev" : "@2df57a1e26dd88e8d0614207d4b062c73209917d",
  "csslib_rev" : "@994d20b90038fedd2aa7ad31f2a31456da96b225",
  "async_await_rev" : "@8b401a9f2e5e81dca5f70dbe7564112a0823dee6",
  "dart_style_tag" : "@0.1.7",
  "d8_rev" : "@39739",
  "eclipse_rev" : "@38742",
  "fake_async_rev" : "@38614",
  "fest_rev" : "@19997",
  "firefox_jsshell_rev" : "@44282",
  "glob_rev": "@704cf75e4f26b417505c5c611bdaacd8808467dd",
  "gson_rev" : "@36048",
  "gsutil_rev" : "@33376",
  "guava_rev" : "@19997",
  "hamcrest_rev" : "@19997",
  "html5lib_rev" : "@faeb31061fcf60c952cc551902739c7d864cb0cd",
  "http_rev" : "@9b93e1542c753090c50b46ef1592d44bc858bfe7",
  "http_multi_server_tag" : "@1.3.2",
  "http_parser_rev" : "@8b179e36aba985208e4c5fb15cfddd386b6370a4",
  "http_throttle_rev" : "@a81f08be942cdd608883c7b67795c12226abc235",
  "idl_parser_rev": "@6316d5982dc24b34d09dd8b10fbeaaff28d83a48",
  "intl_rev": "@32047558bd220a53c1f4d93a26d54b83533b1475",
  "jinja2_rev": "@2222b31554f03e62600cd7e383376a7c187967a1",
  "json_rev" : "@19997",
  "json_rpc_2_rev": "@a38eefd116d910199de205f962af92fed87c164c",
  "junit_rev" : "@19997",
  "logging_rev": "@85d83e002670545e9039ad3985f0018ab640e597",
  "matcher_rev": "@1cad08d3ee7b14e00fee83718236b92e5cf9c9e9",
  "metatest_rev": "@e5aa8e4e19fc4188ac2f6d38368a47d8f07c3df1",
  "mime_rev": "@75890811d4af5af080351ba8a2853ad4c8df98dd",
  "mockito_rev" : "@19997",
  "net_nss_rev": "@f81948e9a402db94287a43bb34a07ee0daf56cb5",
  "nss_rev": "@87b96db4268293187d7cf741907a6d5d1d8080e0",
  "oauth2_rev": "@1bff41f4d54505c36f2d1a001b83b8b745c452f5",
  "observe_rev": "@eee2b8ec34236fa46982575fbccff84f61202ac6",
  "observatory_pub_packages_rev": "@43830",
  "path_rev": "@93b3e2aa1db0ac0c8bab9d341588d77acda60320",
  "petitparser_rev" : "@37878",
  "ply_rev": "@604b32590ffad5cbb82e4afef1d305512d06ae93",
  "pool_rev": "@22e12aeb16ad0b626900dbe79e4a25391ddfb28c",
  "pub_semver_rev": "@182d55d7207e3af5e76e96834fa7cf63c55ce09a",
  "scheduled_test_rev": "@e0d78f61e6266a85ca9a670ec42ff9d6030eec29",
  "shelf_rev": "@1e87b79b21ac5e6fa2f93576d6c06eaa65285ef4",
  "smoke_rev" : "@f3361191cc2a85ebc1e4d4c33aec672d7915aba9",
  "snakeyaml_rev" : "@19997",
  "source_maps_rev": "@379b4f31c4e2987eb15934d1ad8b419c6cc897b3",
  "sqlite_rev": "@38811b79f42801662adc0458a25270ab690a6b81",
  "shelf_web_socket_rev": "@ff170cec2c0e4e5722cdf47c557be63b5035a602",
  "source_span_rev": "@42501132e43599a151ba6727d340e44442f86c05",
  "stack_trace_tag": "@1.2.1",
  "string_scanner_rev": "@3e7617d6f74ba382e9b6130b1cc12091d89a9bc5",
  "sunflower_rev": "@879b704933413414679396b129f5dfa96f7a0b1e",
  "utf_rev": "@1f55027068759e2d52f2c12de6a57cce5f3c5ee6",
  "unittest_rev": "@1625274a8b6309588eb4c0017b5b672a96ad3230",
  "usage_rev": "@b5080dac0d26a5609b266f8fdb0d053bc4c1c638",
  "watcher_tag": "@0.9.5",
  "web_components_rev": "@0e636b534d9b12c9e96f841e6679398e91a986ec",
  "websocket_rev" : "@35854",
  "WebCore_rev" : "@44061",
  "weberknecht_rev" : "@33599",
  "yaml_rev": "@563a5ffd4a800a2897b8f4dd6b19f2a370df2f2b",
  "zlib_rev": "@c3d0a6190f2f8c924a05ab6cc97b8f975bddd33f",
  "font_awesome_rev": "@31824",
  "barback-0.13.0_rev": "@34853",
  "barback-0.14.0_rev": "@36398",
  "barback-0.14.1_rev": "@38525",
  "source_maps-0.9.4_rev": "@38524",
}

deps = {
  "dart":
    "/trunk/dart",

  # Stuff needed for GYP to run.
  "dart/third_party/gyp":
      (Var("googlecode_url") % "gyp") + "/trunk" + Var("gyp_rev"),

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

  "dart/third_party/nss":
      Var("chromium_git") + "/chromium/deps/nss.git" + Var("nss_rev"),

  "dart/third_party/sqlite":
      Var("chromium_git") + "/chromium/src/third_party/sqlite.git" +
      Var("sqlite_rev"),

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

  "dart/third_party/net_nss":
      Var("chromium_git") + "/chromium/src/net/third_party/nss.git" +
      Var("net_nss_rev"),

  "dart/third_party/jinja2":
      Var("chromium_git") + "/chromium/src/third_party/jinja2.git" +
      Var("jinja2_rev"),

  "dart/third_party/ply":
      Var("chromium_git") + "/chromium/src/third_party/ply.git" +
      Var("ply_rev"),

  "dart/third_party/idl_parser":
      Var("chromium_git") + "/chromium/src/tools/idl_parser.git" +
      Var("idl_parser_rev"),

  "dart/third_party/7zip": "/third_party/7zip" + Var("7zip_rev"),
  "dart/third_party/android_adb":
      "/third_party/android_adb" + Var("android_adb_rev"),
  "dart/third_party/android_content_shell":
      "/third_party/android_content_shell" + Var("android_content_shell_rev"),
  "dart/third_party/apache_ant":
      "/third_party/apache_ant" + Var("apache_ant_rev"),
  "dart/third_party/apache_compress":
      "/third_party/apache_compress" + Var("apache_compress_rev"),
  "dart/third_party/apache_http":
      "/third_party/apache_http" + Var("apache_http_rev"),
  "dart/third_party/args4j": "/third_party/args4j" + Var("args4j_rev"),
  "dart/third_party/bzip2": "/third_party/bzip2" + Var("bzip2_rev"),
  "dart/third_party/chrome": "/third_party/chrome" + Var("chrome_rev"),
  "dart/third_party/commons-io":
      "/third_party/commons-io" + Var("commons-io_rev"),
  "dart/third_party/commons-lang":
      "/third_party/commons-lang" + Var("commons-lang_rev"),
  "dart/third_party/eclipse": "/third_party/eclipse" + Var("eclipse_rev"),
  "dart/third_party/fest": "/third_party/fest" + Var("fest_rev"),
  "dart/third_party/firefox_jsshell":
      "/third_party/firefox_jsshell" + Var("firefox_jsshell_rev"),
  "dart/third_party/gson": "/third_party/gson" + Var("gson_rev"),
  "dart/third_party/gsutil": "/third_party/gsutil" + Var("gsutil_rev"),
  "dart/third_party/guava": "/third_party/guava" + Var("guava_rev"),
  "dart/third_party/hamcrest": "/third_party/hamcrest" + Var("hamcrest_rev"),
  "dart/third_party/json": "/third_party/json" + Var("json_rev"),
  "dart/third_party/junit": "/third_party/junit" + Var("junit_rev"),
  "dart/third_party/mockito": "/third_party/mockito" + Var("mockito_rev"),
  "dart/third_party/snakeyaml": "/third_party/snakeyaml" + Var("snakeyaml_rev"),
  "dart/third_party/websocket": "/third_party/websocket" + Var("websocket_rev"),
  "dart/third_party/d8": "/third_party/d8" + Var("d8_rev"),
  "dart/third_party/WebCore": "/third_party/WebCore" + Var("WebCore_rev"),
  "dart/third_party/weberknecht":
      "/third_party/weberknecht" + Var("weberknecht_rev"),
  "dart/third_party/observatory_pub_packages":
      "/third_party/observatory_pub_packages" +
      Var("observatory_pub_packages_rev"),

  "dart/third_party/font-awesome":
      "/third_party/font-awesome" + Var("font_awesome_rev"),
  "dart/third_party/pkg/args":
      "https://github.com/dart-lang/args.git" + Var("args_rev"),
  "dart/third_party/pkg/async_await":
      "https://github.com/dart-lang/async_await.git" + Var("async_await_rev"),
  "dart/third_party/pkg/barback":
      "https://github.com/dart-lang/barback.git" + Var("barback_rev"),
  "dart/third_party/pkg/collection":
      "https://github.com/dart-lang/collection.git" + Var("collection_rev"),
  "dart/third_party/pkg/crypto":
      "https://github.com/dart-lang/crypto.git" + Var("crypto_rev"),
  "dart/third_party/pkg/csslib":
      "https://github.com/dart-lang/csslib.git" + Var("csslib_rev"),
  "dart/third_party/pkg_tested/dart_style":
      "https://github.com/dart-lang/dart_style.git" + Var("dart_style_tag"),
  "dart/third_party/pkg/fake_async":
      "/third_party/fake_async" + Var("fake_async_rev"),
  "dart/third_party/pkg/glob":
      "https://github.com/dart-lang/glob.git" + Var("glob_rev"),
  "dart/third_party/pkg/html5lib":
      "https://github.com/dart-lang/html5lib.git" + Var("html5lib_rev"),
  "dart/third_party/pkg/http":
      "https://github.com/dart-lang/http.git" + Var("http_rev"),
  "dart/third_party/pkg/http_multi_server":
      "https://github.com/dart-lang/http_multi_server.git" +
      Var("http_multi_server_tag"),
  "dart/third_party/pkg/http_parser":
      "https://github.com/dart-lang/http_parser.git" + Var("http_parser_rev"),
  "dart/third_party/pkg/http_throttle":
      "https://github.com/dart-lang/http_throttle.git" + Var("http_throttle_rev"),
  "dart/third_party/pkg/intl":
      "https://github.com/dart-lang/intl.git" + Var("intl_rev"),
  "dart/third_party/pkg/json_rpc_2":
      "https://github.com/dart-lang/json_rpc_2.git" + Var("json_rpc_2_rev"),
  "dart/third_party/pkg/logging":
      "https://github.com/dart-lang/logging.git" + Var("logging_rev"),
  "dart/third_party/pkg/matcher":
      "https://github.com/dart-lang/matcher.git" + Var("matcher_rev"),
  "dart/third_party/pkg/metatest":
      "https://github.com/dart-lang/metatest.git" + Var("metatest_rev"),
  "dart/third_party/pkg/mime":
      "https://github.com/dart-lang/mime.git" + Var("mime_rev"),
  "dart/third_party/pkg/oauth2":
      "https://github.com/dart-lang/oauth2.git" + Var("oauth2_rev"),
  "dart/third_party/pkg/observe":
      "https://github.com/dart-lang/observe.git" + Var("observe_rev"),
  "dart/third_party/pkg/path":
      "https://github.com/dart-lang/path.git" + Var("path_rev"),
  "dart/third_party/pkg/petitparser":
      "/third_party/petitparser" + Var("petitparser_rev"),
  "dart/third_party/pkg/pool":
      "https://github.com/dart-lang/pool.git" + Var("pool_rev"),
  "dart/third_party/pkg/pub_semver":
      "https://github.com/dart-lang/pub_semver.git" + Var("pub_semver_rev"),
  "dart/third_party/pkg/scheduled_test":
      "https://github.com/dart-lang/scheduled_test.git" +
      Var("scheduled_test_rev"),
  "dart/third_party/pkg/shelf":
      "https://github.com/dart-lang/shelf.git" + Var("shelf_rev"),
  "dart/third_party/pkg/shelf_web_socket":
      "https://github.com/dart-lang/shelf_web_socket.git" +
      Var("shelf_web_socket_rev"),
  "dart/third_party/pkg/smoke":
      "https://github.com/dart-lang/smoke.git" + Var("smoke_rev"),
  "dart/third_party/pkg/source_maps":
      "https://github.com/dart-lang/source_maps.git" + Var("source_maps_rev"),
  "dart/third_party/pkg/source_span":
      "https://github.com/dart-lang/source_span.git" + Var("source_span_rev"),
  "dart/third_party/pkg/stack_trace":
      "https://github.com/dart-lang/stack_trace.git" + Var("stack_trace_tag"),
  "dart/third_party/pkg/string_scanner":
      "https://github.com/dart-lang/string_scanner.git" +
      Var("string_scanner_rev"),
  "dart/third_party/sunflower":
      "https://github.com/dart-lang/sample-sunflower.git" +
      Var("sunflower_rev"),
  "dart/third_party/pkg/unittest":
      "https://github.com/dart-lang/unittest.git" + Var("unittest_rev"),
  "dart/third_party/pkg/usage":
      "https://github.com/dart-lang/usage.git" + Var("usage_rev"),
  "dart/third_party/pkg/utf":
      "https://github.com/dart-lang/utf.git" + Var("utf_rev"),
  "dart/third_party/pkg/watcher":
      "https://github.com/dart-lang/watcher.git" + Var("watcher_tag"),
  "dart/third_party/pkg/web_components":
      "https://github.com/dart-lang/web-components.git" +
      Var("web_components_rev"),
  "dart/third_party/pkg/yaml":
      "https://github.com/dart-lang/yaml.git" + Var("yaml_rev"),

  # These specific versions of barback and source_maps are used for testing and
  # should be pulled from bleeding_edge even on channels.
  "dart/third_party/pkg/barback-0.13.0":
      "/branches/bleeding_edge/dart/pkg/barback" + Var("barback-0.13.0_rev"),
  "dart/third_party/pkg/barback-0.14.0+3":
      "/branches/bleeding_edge/dart/pkg/barback" + Var("barback-0.14.0_rev"),
  "dart/third_party/pkg/barback-0.14.1+4":
      "/branches/bleeding_edge/dart/pkg/barback" + Var("barback-0.14.1_rev"),
  "dart/third_party/pkg/source_maps-0.9.4":
      "/branches/bleeding_edge/dart/pkg/source_maps" +
      Var("source_maps-0.9.4_rev"),
}

deps_os = {
  "android": {
    "dart/third_party/android_tools":
      Var("chromium_git") + "/android_tools.git" +
      "@aaeda3d69df4b4352e3cac7c16bea7f16bd1ec12",
  },
  "win": {
    "dart/third_party/cygwin":
      Var("chromium_git") + "/chromium/deps/cygwin.git" +
      "@c89e446b273697fadf3a10ff1007a97c0b7de6df",
    "dart/third_party/drt_resources":
      Var("chromium_url") +
      "/trunk/src/webkit/tools/test_shell/resources@157099",
  },
  "unix": {
    "dart/third_party/clang": "/third_party/clang" + Var("clang_rev"),
  },
}

# TODO(iposva): Move the necessary tools so that hooks can be run
# without the runtime being available.
hooks = [
  {
    "pattern": ".",
    "action": ["python", "dart/tools/compiler_scripts/generate_my_projects.py"],
  },
  {
    "pattern": ".",
    "action": ["python", "dart/editor/build/generate_sources.py"],
  },
  {
    "pattern": ".",
    "action": ["python", "dart/tools/gyp_dart.py"],
  },
]
