# Copyright 2019 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

group("dart") {
  testonly = true
  public_deps = [
    "//topaz/runtime/dart_runner/examples/goodbye_dart:goodbye_dart_aot",
    "//topaz/runtime/dart_runner/examples/goodbye_dart:goodbye_dart_jit",
    "//topaz/runtime/dart_runner/examples/hello_app_dart:hello_app_dart_aot",
    "//topaz/runtime/dart_runner/examples/hello_app_dart:hello_app_dart_jit",
    "//topaz/runtime/dart_runner/examples/hello_dart:hello_dart_aot",
    "//topaz/runtime/dart_runner/examples/hello_dart:hello_dart_aot_product",
    "//topaz/runtime/dart_runner/examples/hello_dart:hello_dart_debug",
    "//topaz/runtime/dart_runner/examples/hello_dart:hello_dart_jit",
    "//topaz/runtime/dart_runner/examples/hello_dart:hello_dart_jit_product",
  ]
}

group("all") {
  testonly = true
  public_deps = [
    "//topaz/packages/examples:dart",
    "//topaz/packages/examples:dart_sdk",
    "//topaz/packages/examples:fidl",
    "//topaz/packages/examples:inspect",
    "//topaz/packages/examples:misc",
    "//topaz/packages/examples:modular",
    "//topaz/packages/examples:mondrian",
    "//topaz/packages/examples:noodles",
    "//topaz/packages/examples:simple_flutter",
    "//topaz/packages/examples:spinning_cube",
    "//topaz/packages/examples:tests",
    "//topaz/packages/examples:ui",
  ]
}

group("dart_sdk") {
  testonly = true
  public_deps = [
    "//topaz/public/dart/fuchsia_services/examples/mind_reader/bin:mind_reader_dart",
  ]
}

group("fidl") {
  testonly = true
  public_deps = [
    "//topaz/examples/fidl/compiler",
    "//topaz/examples/fidl/echo_client_async_dart",
    "//topaz/examples/fidl:echo_dart",
    "//topaz/examples/fidl/echo_server_async_dart",
    "//topaz/examples/fidl/fidl_bindings_performance",
  ]
}

group("tests") {
  testonly = true
  public_deps = [
    "//topaz/examples/test/driver_example_mod",
    "//topaz/examples/test/driver_example_mod:driver_example_mod_tests",
    "//topaz/public/dart/fuchsia_modular/examples/slider_mod",
    "//topaz/public/dart/fuchsia_modular/examples/slider_mod:slider_mod_tests",
  ]
}

group("misc") {
  testonly = true
  public_deps = [
    "//garnet/packages/prod:drivers",
    "//topaz/examples/ledger/todo_list",
    "//topaz/examples/ledger/todo_list_sledge",
    "//topaz/examples/media/vu_meter:package",
    "//topaz/examples/mediaplayer/mediaplayer_flutter",
    "//topaz/examples/mediaplayer/mediaplayer_skia",
    "//topaz/examples/mine_digger",
  ]
}

group("ui") {
  testonly = true
  public_deps = [
    "//topaz/examples/ui/button_flutter",
    "//topaz/examples/ui/jank:package",
    "//topaz/examples/ui/localized_mod",
    "//topaz/examples/ui/paint:package",
    "//topaz/examples/ui/view_config_demo",
    "//topaz/packages/examples:noodles",
  ]
}

group("noodles") {
  testonly = true
  public_deps = [
    "//topaz/examples/ui/noodles",
  ]
}

group("spinning_cube") {
  testonly = true
  public_deps = [
    "//topaz/app/spinning_cube",
  ]
}

group("mondrian") {
  testonly = true
  public_deps = [
    "//topaz/lib/story_shell/examples/example_manual_relationships",
    "//topaz/lib/story_shell/examples/mondrian_test",
  ]
}

group("simple_flutter") {
  testonly = true
  public_deps = [
    "//topaz/examples/ui/simple_flutter:simple_flutter",
  ]
}

group("modular") {
  testonly = true
  public_deps = [
    "//topaz/public/dart/fuchsia_modular/examples/fibonacci_agent",
    "//topaz/public/dart/fuchsia_modular/examples/multilevel_mod",
    "//topaz/public/dart/fuchsia_modular/examples/shapes_mod",
    "//topaz/public/dart/fuchsia_modular/examples/slider_mod",
  ]
}

group("inspect") {
  testonly = true
  public_deps = [
    "//topaz/public/dart/fuchsia_inspect/examples/inspect_mod",
  ]
}
