# 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/rust/rustc_binary.gni")
import("//build/rust/rustc_library.gni")
import("//src/sys/build/components.gni")

rustc_binary("bin") {
  name = "rolldice"
  edition = "2018"
  deps = [
    ":lib",
    "//third_party/rust_crates:rand",
    "//third_party/rust_crates:structopt",
  ]

  sources = [ "src/main.rs" ]
}

rustc_library("lib") {
  name = "rolldice_lib"
  edition = "2018"
  with_unit_tests = true
  deps = [ "//third_party/rust_crates:rand" ]

  sources = [ "src/lib.rs" ]
}

fuchsia_shell_package("rolldice") {
  manifest = "meta/rolldice.cmx"
  deps = [ ":bin" ]
}

fuchsia_unittest_package("rolldice-tests") {
  deps = [ ":lib_test" ]
}
