# 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")

group("examples") {
  testonly = true

  deps = [
    "//examples/apptest",
    "//examples/browser",
    "//examples/content_handler_demo",
    "//examples/dart/console_example",
    "//examples/dart/hello_world/hello",
    "//examples/dart/hello_world/world",
    "//examples/dart/netcat",
    "//examples/dart/wget",
    "//examples/echo",
    "//examples/echo_terminal",
    "//examples/embedded_app",
    "//examples/forwarding_content_handler",
    "//examples/ganesh_app",
    "//examples/http_handler",
    "//examples/indirect_service",
    "//examples/nesting_app",
    "//examples/png_viewer",
    "//examples/recursive_content_handler",
    "//examples/sky_compositor_app",
    "//examples/spinning_cube",
    "//examples/surfaces_app",
    "//examples/versioning",
    "//examples/wget",
    "//examples/window_manager",
    "//examples/wm_flow",
  ]

  if (!is_android) {
    deps += [ "//examples/pdf_viewer" ]
  }

  if (is_android) {
    deps += [
      "//examples/android",
      "//examples/device_name",
    ]
  }

  if (is_android && defined(go_build_tool) && go_build_tool != "") {
    deps += [ "//examples/go" ]
  }

  if (is_linux) {
    deps += [ "//examples/python" ]
  }
}
