# 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/device_info",
    "//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/keyboard_client",
    "//examples/nesting_app",
    "//examples/nfc_sender",
    "//examples/notification_generator",
    "//examples/png_viewer",
    "//examples/recursive_content_handler",
    "//examples/spinning_cube",
    "//examples/surfaces_app",
    "//examples/tiny",
    "//examples/wget",
    "//examples/window_manager",
    "//examples/wm_flow",
  ]

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

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

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

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