# Copyright (c) 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# This is the root build file for GN. GN will start processing by loading this
# file, and recursively load all dependencies until all dependencies are either
# resolved or known not to exist (which will cause the build to fail). So if
# you add a new build file, there must be some path of dependencies from this
# file to your new one or GN won't know about it.

# In GN, a "group" is a dummy target that just lists other targets.
group("root") {
  # Note that some dependencies are commented out. These are things that are
  # currently written but not hooked up to the build yet. They may need to be
  # completed or possibly just tested and then re-enabled.
  deps = [
    # This is a temporary test of the not-yet-complete NaCl cross-compilation.
    #"//base(//build/toolchain/nacl:x86_newlib)",

    "//apps/common/api:apps_api",
    #"//chrome",
    "//components/favicon_base",
    "//components/language_usage_metrics",
    "//components/metrics",
    "//components/navigation_metrics",
    "//components/onc",
    "//components/os_crypt",
    "//components/query_parser",
    "//components/resources:components_resources",
    "//components/startup_metric_utils",
    "//components/tracing",
    "//components/translate:translate_core_browser",
    "//components/translate:translate_core_common",
    "//components/url_matcher",
    "//content/public/common",
    "//crypto",
    "//device/usb",
    #"//extensions/common/api:extensions_api",
    "//gin",
    "//gpu/command_buffer/client",
    "//gpu/command_buffer/service",
    "//ipc",
    "//mojo",
    "//net",
    #"//sdch",
    "//skia",
    "//third_party/brotli",
    "//third_party/harfbuzz-ng",
    "//third_party/iccjpeg",
    "//third_party/icu",
    "//third_party/leveldatabase",
    "//third_party/libpng",
    "//third_party/libusb",
    "//third_party/libwebm",
    "//third_party/libwebp",
    "//third_party/ots",
    "//third_party/protobuf:protobuf_lite",
    "//third_party/qcms",
    "//third_party/re2",
    "//third_party/smhasher:cityhash",
    "//third_party/smhasher:murmurhash3",
    "//third_party/smhasher:pmurhash",
    # TODO(brettw) re-enable once the unused variables in this .gn file are
    # fixed and rolled into Chrome.
    #"//third_party/WebKit/Source/platform",
    "//third_party/WebKit/Source/wtf",
    "//third_party/zlib",
    "//third_party:jpeg",
    "//tools/gn",
    "//ui/accessibility",
    "//ui/base:ui_base",
    "//ui/events",
    "//ui/gfx",
    "//ui/gl",
    "//ui/native_theme",
    "//ui/resources",
    "//ui/strings",
    "//ui/surface",
    "//url",
    "//v8:mksnapshot",
  ]

  if (is_linux) {
    deps += [
      "//third_party/freetype2",
    ]
  }

  if (is_win) {
    deps += [
      "//ui/metro_viewer",
    ]
  }

  if (is_android) {
    deps -= [
      "//content/public/common",
      "//third_party/libusb",
      #"//third_party/WebKit/Source/platform",
      "//third_party/WebKit/Source/wtf",  # TODO(brettw) re-enable for Android.
      "//tools/gn",

      # This stuff all depends on ui/surface which requires some .class jni
      # generators (ui/gl/gl.gyp:surface_jni_headers).
      "//ui/gl",
      "//gpu/command_buffer/client",
      "//gpu/command_buffer/service",
      "//ui/surface",
    ]
  }
}
