# 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:flutter_gallery",
    "//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/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",
  ]
}

group("flutter_gallery") {
  testonly = true
  public_deps = [
    "//third_party/dart-pkg/git/flutter/examples/flutter_gallery",
  ]
}
