# Copyright 2014 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 target will be built if no target is specified when invoking ninja.
group("default") {
  testonly = true

  deps = [
    "//apps",
    "//crypto:crypto_unittests",
    "//examples",
    "//mojo",
    "//mojom",
    "//services",
    "//shell",
    "//ui/gfx:gfx_unittests",
    "//ui/events:events_unittests",
  ]

  if (!is_android && !is_win) {
    deps += [ "//tools/xdisplaycheck" ]
  }

  if (!is_asan) {
    deps += [ "//sky" ]
  }
}

# Deprecated name for the default build target.
group("root") {
  testonly = true
  deps = [
    ":default",
  ]
}
