# Copyright 2009 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

vars = {
  "chromium_trunk": "http://src.chromium.org/svn/trunk",
  "chromium_revision": "@74824",
  "chromium_deps_root": "src/third_party/chromium_deps",

  "libpagespeed_trunk": "http://page-speed.googlecode.com/svn/lib/tags/lib-1.11.1.0",
  "libpagespeed_revision": "@head",
  "libpagespeed_deps_root": "src/third_party/libpagespeed_deps",

  # We check libwebp out of Chromium repo to get the .gyp file.
  "libwebp_src": "http://src.chromium.org/svn/trunk/src/third_party/libwebp/",
  "libwebp_revision": "@80421",

  "mod_spdy_trunk": "http://mod-spdy.googlecode.com/svn/trunk",
  "mod_spdy_revision": "@143",
  "mod_spdy_deps_root": "src/third_party/mod_spdy_deps",

  "serf_src": "http://serf.googlecode.com/svn/tags/0.7.2",
  "serf_revision": "@head",

  "apr_src": "http://svn.apache.org/repos/asf/apr/apr/tags/1.4.2",
  "apr_revision": "@head",

  "aprutil_src": "http://svn.apache.org/repos/asf/apr/apr-util/tags/1.3.9",
  "aprutil_revision": "@head",

  "apache_httpd_src": "http://svn.apache.org/repos/asf/httpd/httpd/tags/2.2.15",
  "apache_httpd_revision": "@head",

  "opencv_src": "https://code.ros.org/svn/opencv/tags/2.1",
  "opencv_revision": "@head",

  "gflags_root": "http://google-gflags.googlecode.com/svn/tags/gflags-1.5/src",
  "gflags_revision": "@head",

  "google_sparsehash_root": "http://google-sparsehash.googlecode.com/svn/tags/sparsehash-1.8.1/src",
  "google_sparsehash_revision": "@head",
}

deps = {

  # Fetch dependent DEPS so we can sync our other dependencies relative
  # to them.
  Var("chromium_deps_root"):
    File(Var("chromium_trunk") + "/src/DEPS" + Var("chromium_revision")),

  Var("libpagespeed_deps_root"):
    File(Var("libpagespeed_trunk") + "/src/DEPS" +
      Var("libpagespeed_revision")),

  # Other dependencies.
  "src/base":
    Var("libpagespeed_trunk") + "/src/base" + Var("libpagespeed_revision"),

  "src/build/temp_gyp":
    Var("libpagespeed_trunk") + "/src/build/temp_gyp" +
      Var("libpagespeed_revision"),

  "src/build/internal": From(Var("libpagespeed_deps_root")),
  "src/build/linux": From(Var("libpagespeed_deps_root")),
  "src/build/mac": From(Var("libpagespeed_deps_root")),
  "src/build/util": From(Var("libpagespeed_deps_root")),
  "src/build/win": From(Var("libpagespeed_deps_root")),

  "src/third_party/icu":
    Var("libpagespeed_trunk") + "/src/third_party/icu" + Var("libpagespeed_revision"),

  "src/third_party/icu/public":
    From(Var("libpagespeed_deps_root")),

  "src/third_party/icu/source/common":
    From(Var("libpagespeed_deps_root")),

  "src/third_party/icu/source/i18n":
    From(Var("libpagespeed_deps_root")),

  "src/googleurl": From(Var("chromium_deps_root")),

  "src/googleurl_noconv":
    (Var("libpagespeed_trunk") + "/src/googleurl_noconv" +
     Var("libpagespeed_revision")),

  "src/testing": From(Var("libpagespeed_deps_root")),
  "src/testing/gtest": From(Var("chromium_deps_root")),

  "src/third_party/apache":
    Var("mod_spdy_trunk") + "/src/third_party/apache" +
    Var("mod_spdy_revision"),

  "src/third_party/apache/apr/src":
    Var("apr_src") + Var("apr_revision"),

  "src/third_party/apache/aprutil/src":
    Var("aprutil_src") + Var("aprutil_revision"),

  "src/third_party/apache/httpd/src/include":
    Var("apache_httpd_src") + "/include" + Var("apache_httpd_revision"),

  "src/third_party/apache/httpd/src/os":
    Var("apache_httpd_src") + "/os" + Var("apache_httpd_revision"),

  "src/third_party/chromium/src/base": From(Var("libpagespeed_deps_root")),
  "src/third_party/chromium/src/build": From(Var("libpagespeed_deps_root")),
  "src/third_party/chromium/src/chrome/tools/build":
    File(Var("chromium_trunk") + "/src/chrome/tools/build/version.py" +
         Var("chromium_revision")),
  "src/third_party/chromium/src/net/base": From(Var("libpagespeed_deps_root")),

  "src/third_party/chromium/src/net/tools/dump_cache":
     Var("chromium_trunk") + "/src/net/tools/dump_cache" +
     Var("chromium_revision"),

  "src/third_party/gflags/src": Var("gflags_root") + Var("gflags_revision"),
  "src/third_party/google-sparsehash/src":
    Var("google_sparsehash_root") + Var("google_sparsehash_revision"),
  "src/third_party/libjpeg": From(Var("libpagespeed_deps_root")),

  "src/third_party/libpagespeed/src/build":
    (Var("libpagespeed_trunk") + "/src/build" +
     Var("libpagespeed_revision")),

  "src/third_party/libpagespeed/src/build/internal":
    Var("chromium_trunk") + "/src/build/internal" + Var("chromium_revision"),

  "src/third_party/libpagespeed/src/pagespeed/core":
    (Var("libpagespeed_trunk") + "/src/pagespeed/core" +
     Var("libpagespeed_revision")),

  "src/third_party/libpagespeed/src/pagespeed/image_compression":
    (Var("libpagespeed_trunk") + "/src/pagespeed/image_compression" +
     Var("libpagespeed_revision")),

  "src/third_party/libpagespeed/src/pagespeed/jsminify":
    (Var("libpagespeed_trunk") + "/src/pagespeed/jsminify" +
     Var("libpagespeed_revision")),

  "src/third_party/libpagespeed/src/pagespeed/l10n":
    (Var("libpagespeed_trunk") + "/src/pagespeed/l10n" +
     Var("libpagespeed_revision")),

  "src/third_party/libpagespeed/src/pagespeed/proto":
    (Var("libpagespeed_trunk") + "/src/pagespeed/proto" +
     Var("libpagespeed_revision")),

  "src/third_party/libpagespeed/src/third_party":
    (Var("libpagespeed_trunk") + "/src/third_party" +
     Var("libpagespeed_revision")),

  "src/third_party/protobuf": From(Var("libpagespeed_deps_root")),

  "src/third_party/opencv/src/opencv/src":
    Var("opencv_src") + "/opencv/src" + Var("opencv_revision"),

  "src/third_party/opencv/src/opencv/include":
    Var("opencv_src") + "/opencv/include" + Var("opencv_revision"),

  "src/third_party/opencv/src/opencv/3rdparty/flann":
    Var("opencv_src") + "/opencv/3rdparty/flann" + Var("opencv_revision"),

  "src/third_party/opencv/src/opencv/3rdparty/lapack":
    Var("opencv_src") + "/opencv/3rdparty/lapack" + Var("opencv_revision"),

  "src/third_party/opencv/src/opencv/3rdparty/include":
    Var("opencv_src") + "/opencv/3rdparty/include" + Var("opencv_revision"),

  "src/third_party/serf/src": Var("serf_src") + Var("serf_revision"),

  "src/third_party/libwebp": Var("libwebp_src") + Var("libwebp_revision"),

  "src/third_party/zlib": From(Var("libpagespeed_deps_root")),

  "src/tools/data_pack": From(Var("libpagespeed_deps_root")),
  "src/tools/grit": From(Var("libpagespeed_deps_root")),
  "src/tools/gyp": From(Var("chromium_deps_root")),
}


deps_os = {
  "win": {
    "src/third_party/cygwin": From(Var("chromium_deps_root")),
    "src/third_party/python_26": From(Var("chromium_deps_root")),
  },
  "mac": {
  },
  "unix": {
  },
}


include_rules = [
  # Everybody can use some things.
  "+base",
  "+build",
]


# checkdeps.py shouldn't check include paths for files in these dirs:
skip_child_includes = [
   "testing",
]


hooks = [
  {
    # A change to a .gyp, .gypi, or to GYP itself should run the generator.
    "pattern": ".",
    "action": ["python", "src/build/gyp_chromium"],
  },
]
