# Copyright 2018 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.

import("//build/package.gni")
import("//build/rust/rustc_binary.gni")

group("example_ai") {
  testonly = true
  deps = [
    ":tennis_example_ai",
    ":tennis_example_ai_bin",
  ]
}

package("tennis_example_ai") {
  deps = [ ":tennis_example_ai_bin" ]

  binaries = [
    {
      name = "tennis_example_ai"
    },
  ]
  meta = [
    {
      path = rebase_path("meta/tennis_example_ai.cmx")
      dest = "tennis_example_ai.cmx"
    },
  ]
}

rustc_binary("tennis_example_ai_bin") {
  name = "tennis_example_ai"
  edition = "2018"

  deps = [
    "//sdk/fidl/fuchsia.game.tennis:fuchsia.game.tennis-rustc",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/syslog/rust:syslog",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:parking_lot",
  ]
}
