# 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/content_handler_demo",
    "//examples/dart",
    "//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/moterm_example_app",
    "//examples/native_run_app",
    "//examples/nfc_sender",
    "//examples/notification_generator",
    "//examples/png_viewer",
    "//examples/recursive_content_handler",
    "//examples/serialization",
    "//examples/spinning_cube",
    "//examples/tiny",
    "//examples/trace_me",
    "//examples/wget",
  ]

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

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

  if (is_linux || is_android) {
    deps += [ "//examples/surfaces_app" ]
  }

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

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

  if (is_linux && !is_asan) {
    deps += [ "//examples/spinning_cube(//build/toolchain/nacl:newlib_pnacl)" ]
  }
}
