# 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/package.gni")

rustc_binary("bin") {
  name = "network_settings_server"
  edition = "2018"
  deps = [
    "//garnet/public/lib/fidl/rust/fidl",
    "//garnet/public/rust/fuchsia-app",
    "//garnet/public/rust/fuchsia-async",
    "//garnet/public/rust/fuchsia-syslog",
    "//garnet/public/rust/fuchsia-zircon",
    "//third_party/rust-crates/rustc_deps:rouille",
    "//third_party/rust-crates/rustc_deps:failure",
    "//third_party/rust-crates/rustc_deps:serde",
    "//third_party/rust-crates/rustc_deps:serde_derive",
    "//third_party/rust-crates/rustc_deps:serde_json",
  ]
}

package("network_settings_server") {
  deps = [
    ":bin",
  ]

  binary = "rust_crates/network_settings_server"

  resources = [
    {
        path = rebase_path("resources/index.html")
        dest = "index.html"
    },
  ]

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

