# 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/wget",
    "//examples/echo",
    "//examples/embedded_app",
    "//examples/forwarding_content_handler",
    "//examples/ganesh_app",
    "//examples/http_handler",
    "//examples/indirect_service",
    "//examples/js/maps",
    "//examples/nesting_app",
    "//examples/png_viewer",
    "//examples/recipes",
    "//examples/recursive_content_handler",
    "//examples/sample_app",
    "//examples/sky_compositor_app",
    "//examples/surfaces_app",
    "//examples/wget",
    "//examples/window_manager",
    "//examples/wm_flow",
  ]

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

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

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