# 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.

import("//build/config/ui.gni")

# This target will be built if no target is specified when invoking ninja.
group("default") {
  testonly = true

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

  if (is_linux) {
    deps += [
      "//sandbox/linux:sandbox",
      "//sandbox/linux:sandbox_linux_unittests",
      "//tools/xdisplaycheck",
    ]
  }

  if (use_ozone) {
    deps += [
      "//ui/ozone",
      "//ui/ozone/demo",
      "//ui/ozone:ozone_unittests",
    ]
  }
}

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