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

rustc_library("lib") {
  name = "dns"
  with_unit_tests = true
  edition = "2021"
  deps = [
    "//sdk/fidl/fuchsia.net:fuchsia.net-rustc",
    "//sdk/fidl/fuchsia.net.name:fuchsia.net.name-rustc",
    "//src/connectivity/lib/net-declare",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/network/fidl_fuchsia_net_ext",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:async-trait",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:parking_lot",
    "//third_party/rust_crates:socket2",
    "//third_party/rust_crates:trust-dns-proto",
    "//third_party/rust_crates:trust-dns-resolver",
  ]
  test_deps = [ "//third_party/rust_crates:assert_matches" ]

  sources = [
    "src/async_resolver.rs",
    "src/config.rs",
    "src/lib.rs",
    "src/tcp.rs",
    "src/test_util.rs",
    "src/udp.rs",
  ]

  configs -= [ "//build/config/rust:allow_unused_results" ]
}

fuchsia_component("dns_lib_test") {
  testonly = true
  manifest = "meta/dns_lib_test.cml"
  deps = [ ":lib_test" ]
}

fuchsia_test_package("dns-tests") {
  test_components = [ ":dns_lib_test" ]
  deps = [ "//src/connectivity/network/netstack:component-debug" ]
}

bin_base = {
  edition = "2018"

  deps = [
    ":lib",
    "//sdk/fidl/fuchsia.net:fuchsia.net-rustc",
    "//sdk/fidl/fuchsia.net.name:fuchsia.net.name-rustc",
    "//sdk/fidl/fuchsia.net.routes:fuchsia.net.routes-rustc",
    "//sdk/fidl/fuchsia.net.stack:fuchsia.net.stack-rustc",
    "//src/connectivity/lib/net-declare",
    "//src/connectivity/lib/net-types",
    "//src/lib/diagnostics/hierarchy/rust",
    "//src/lib/diagnostics/inspect/runtime/rust",
    "//src/lib/diagnostics/inspect/rust",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/network/fidl_fuchsia_net_ext",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:assert_matches",
    "//third_party/rust_crates:async-trait",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:lazy_static",
    "//third_party/rust_crates:libc",
    "//third_party/rust_crates:parking_lot",
    "//third_party/rust_crates:thiserror",
    "//third_party/rust_crates:tracing",
    "//third_party/rust_crates:trust-dns-proto",
    "//third_party/rust_crates:trust-dns-resolver",
    "//third_party/rust_crates:unicode-xid",
  ]

  test_deps = [
    "//src/connectivity/lib/net-declare",
    "//src/lib/const-unwrap",
    "//third_party/rust_crates:itertools",
  ]

  sources = [ "src/main.rs" ]

  non_rust_deps = []
}

rustc_binary("bin") {
  edition = "2021"
  forward_variables_from(bin_base, "*")

  name = "dns_resolver"
  with_unit_tests = true
  configs -= [ "//build/config/rust:allow_unused_results" ]
}

rustc_binary("bin_with_fake_time") {
  edition = "2021"
  forward_variables_from(bin_base, "*")

  name = "dns_resolver_with_fake_time"
  testonly = true
  configs -= [ "//build/config/rust:allow_unused_results" ]

  non_rust_deps += [ "//src/lib/fake-clock/lib" ]
}

fuchsia_unittest_package("dns-resolver-tests") {
  v2 = true
  deps = [ ":bin_test" ]
}

# NOTE(https://fxbug.dev/83213): This component is load bearing out of tree in
# surprising ways. We can't remove its definition until that's no longer true.
# See the bug for details.
fuchsia_component("component-legacy") {
  component_name = "dns-resolver"
  manifest = "meta/dns-resolver.cmx"
  deps = [ ":bin" ]
}

fuchsia_component("component") {
  component_name = "dns_resolver"
  manifest = "meta/dns_resolver.cml"
  deps = [ ":bin" ]
}

fuchsia_component("component_with_fake_time") {
  component_name = "dns_resolver_with_fake_time"
  manifest = "meta/dns_resolver_with_fake_time.cml"
  deps = [ ":bin_with_fake_time" ]
  testonly = true
}

group("tests") {
  testonly = true
  deps = [
    ":dns-resolver-tests",
    ":dns-tests",
  ]
}
