# Copyright 2020 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/host.gni")
import("//build/rust/rustc_binary.gni")
import("//build/rust/rustc_library.gni")

if (host_toolchain == current_toolchain) {
  rustc_binary("bin") {
    name = "bindc_migrate"
    edition = "2018"

    sources = [ "src/main.rs" ]

    with_unit_tests = true
    test_environments = [
      linux_env,
      mac_env,
    ]

    deps = [
      "//src/devices/bind/debugger:lib",
      "//third_party/rust_crates:anyhow",
      "//third_party/rust_crates:regex",
      "//third_party/rust_crates:structopt",
    ]
  }
}

install_host_tools("migration_tool") {
  outputs = [ "bindc_migrate" ]
  deps = [ ":bin" ]
}
