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

# DO NOT EDIT. THIS FILE IS GENERATED BY CARGO GNAW. EDIT THE CARGO TOML FILE

import("//build/licenses/license.gni")

gn_source_root = rebase_path("//", root_build_dir)
not_needed([ "gn_source_root" ])

group("package-with-bin") {
  public_deps = [ ":package-with-bin-v0_1_0" ]
}

group("foo-output") {
  public_deps = [ ":package-with-bin-foo-binary-v0_1_0" ]
}

executable("package-with-bin-foo-binary-v0_1_0") {
  crate_name = "foo_binary"
  crate_root = "//binary/src/main.rs"
  output_name = "foo-output"
  if (current_os == "fuchsia") {
    configs += [ "//extra/fuchsia/config" ]
  }
  if (true) {
    configs += [ "//applied/to/all" ]
  }

  deps = []
  deps += [ ":package-with-bin-v0_1_0" ]

  rustenv = []

  rustflags = [
    "--cap-lints=allow",
    "--edition=2018",
    "-Cmetadata=afa00503dca78ba8",
    "-Cextra-filename=-afa00503dca78ba8",
  ]

  visibility = [ ":*" ]

  applicable_licenses = []
}

rust_library("package-with-bin-v0_1_0") {
  crate_name = "package_with_bin"
  crate_root = "//binary/src/lib.rs"
  output_name = "package_with_bin-b6c5dfd7f886ecb4"

  deps = []

  rustenv = []

  rustflags = [
    "--cap-lints=allow",
    "--edition=2018",
    "-Cmetadata=b6c5dfd7f886ecb4",
    "-Cextra-filename=-b6c5dfd7f886ecb4",
  ]

  visibility = [ ":*" ]

  applicable_licenses = []
}
