# 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")

rustc_binary("bin") {
  name = "network_settings_server"
  edition = "2018"
  deps = [
    "//src/lib/syslog/rust:syslog",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:rouille",
    "//third_party/rust_crates:serde",
    "//third_party/rust_crates:serde_json",
    "//third_party/rust_crates:thiserror",
  ]

  enforce_source_listing = true

  sources = [
    "src/main.rs",
    "src/net_settings_types.rs",
    "src/server.rs",
  ]
}

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

  binaries = [
    {
      name = "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"
    },
  ]
}
