# Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.

# Dependencies between third party crates is mapped out here manually.  This is
# not so difficult and having it be tedious to add dependencies might help us
# avoid dependency hell later on. Always try to minimize dependencies.
# Versioning for third party rust crates is controlled in //Cargo.toml
# Use //tools/sync_third_party.py instead of running "cargo install".

import("rust.gni")

cargo_home = "//third_party/rust_crates"

rust_crate("aho_corasick") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/aho-corasick-0.7.3/src/lib.rs"
  features = [
    "default",
    "memchr",
    "std",
  ]
  extern = [ ":memchr" ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("ansi_term") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ansi_term-0.11.0/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
  if (is_win) {
    extern = [ ":winapi" ]
  }
}

rust_crate("arrayvec") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/arrayvec-0.4.10/src/lib.rs"
  extern = [ ":nodrop" ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("atty") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/atty-0.2.11/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
  if (is_posix) {
    extern = [ ":libc" ]
  }
  if (is_win) {
    extern = [ ":winapi" ]
  }
}

rust_crate("base64") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/base64-0.10.1/src/lib.rs"
  extern = [ ":byteorder" ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("bitflags") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/bitflags-1.0.4/src/lib.rs"
  features = [ "default" ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("byteorder") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/byteorder-1.3.1/src/lib.rs"
  features = [
    "default",
    "std",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]

  # Added by custom-build script.
  cfg = [ "byteorder_i128" ]
}

rust_crate("bytes") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/bytes-0.4.12/src/lib.rs"
  extern = [
    ":byteorder",
    ":iovec",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("cfg_if") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/cfg-if-0.1.7/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("clap") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/clap-2.33.0/src/lib.rs"
  features = [
    "ansi_term",
    "atty",
    "color",
    "default",
    "strsim",
    "suggestions",
    "vec_map",
  ]
  extern = [
    ":atty",
    ":bitflags",
    ":strsim",
    ":textwrap",
    ":unicode_width",
    ":vec_map",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
  if (is_posix) {
    extern += [ ":ansi_term" ]
  }
}

rust_crate("crossbeam_deque") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/crossbeam-deque-0.7.1/src/lib.rs"
  extern = [
    ":crossbeam_epoch",
    ":crossbeam_utils",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("crossbeam_epoch") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/crossbeam-epoch-0.7.1/src/lib.rs"
  features = [
    "crossbeam-utils",
    "default",
    "lazy_static",
    "std",
  ]
  extern = [
    ":arrayvec",
    ":cfg_if",
    ":crossbeam_utils",
    ":lazy_static",
    ":memoffset",
    ":scopeguard",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("crossbeam_queue") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/crossbeam-queue-0.1.2/src/lib.rs"
  extern = [ ":crossbeam_utils" ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("crossbeam_utils") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/crossbeam-utils-0.6.5/src/lib.rs"
  features = [
    "default",
    "lazy_static",
    "std",
  ]
  extern = [
    ":cfg_if",
    ":lazy_static",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("ct_logs") {
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ct-logs-0.5.1/src/lib.rs"
  extern = [ ":sct" ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("dirs") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/dirs-1.0.5/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
  if (is_posix) {
    extern = [ ":libc" ]
  }
  if (is_win) {
    extern = [ ":winapi" ]
  }
}

rust_crate("flatbuffers") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/flatbuffers-0.5.0/src/lib.rs"
  extern = [ ":smallvec" ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("fnv") {
  edition = "2015"
  source_root =
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/fnv-1.0.6/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("futures") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/futures-0.1.26/src/lib.rs"
  features = [
    "default",
    "use_std",
    "with-deprecated",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("futures_cpupool") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/futures-cpupool-0.1.8/src/lib.rs"
  features = [
    "default",
    "futures",
    "with-deprecated",
  ]
  extern = [
    ":futures",
    ":num_cpus",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("h2") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/h2-0.1.18/src/lib.rs"
  extern = [
    ":byteorder",
    ":bytes",
    ":fnv",
    ":futures",
    ":http",
    ":indexmap",
    ":log",
    ":slab",
    ":string",
    ":tokio_io",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("http") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/http-0.1.17/src/lib.rs"
  extern = [
    ":bytes",
    ":fnv",
    ":itoa",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("httparse") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/httparse-1.3.3/src/lib.rs"
  features = [
    "default",
    "std",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]

  # Added by custom-build script.
  cfg = [ "httparse_simd" ]
}

rust_crate("hyper") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/hyper-0.12.27/src/lib.rs"
  features = [
    "__internal_flaky_tests",
    "default",
    "futures-cpupool",
    "net2",
    "runtime",
    "tokio",
    "tokio-executor",
    "tokio-reactor",
    "tokio-tcp",
    "tokio-threadpool",
    "tokio-timer",
  ]
  extern = [
    ":bytes",
    ":futures",
    ":futures_cpupool",
    ":h2",
    ":http",
    ":httparse",
    ":iovec",
    ":itoa",
    ":log",
    ":net2",
    ":time",
    ":tokio",
    ":tokio_executor",
    ":tokio_io",
    ":tokio_reactor",
    ":tokio_tcp",
    ":tokio_threadpool",
    ":tokio_timer",
    ":want",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("hyper_rustls") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/hyper-rustls-0.16.1/src/lib.rs"
  features = [
    "ct-logs",
    "default",
    "hyper",
    "tokio-runtime",
    "webpki-roots",
  ]
  extern = [
    ":bytes",
    ":ct_logs",
    ":futures",
    ":hyper",
    ":rustls",
    ":tokio_io",
    ":tokio_rustls",
    ":webpki",
    ":webpki_roots",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("idna") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/idna-0.1.5/src/lib.rs"
  extern = [
    ":matches",
    ":unicode_bidi",
    ":unicode_normalization",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("indexmap") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/indexmap-1.0.2/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("integer_atomics") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/integer-atomics-1.0.2/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("iovec") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/iovec-0.1.2/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
  if (is_posix) {
    extern = [ ":libc" ]
  }
  if (is_win) {
    extern_version = [
      {
        crate_name = "winapi"
        crate_version = "0.2.8"
      },
    ]
  }
}

rust_crate("itoa") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/itoa-0.4.3/src/lib.rs"
  features = [
    "default",
    "std",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("lazy_static") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.3.0/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("lazycell") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/lazycell-1.2.1/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("libc") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/libc-0.2.51/src/lib.rs"
  features = [
    "default",
    "use_std",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]

  # Added by custom-build script.
  cfg = [
    "libc_align",
    "libc_const_size_of",
    "libc_core_cvoid",
    "libc_packedN",
    "libc_priv_mod_use",
    "libc_union",
  ]
}

rust_crate("lock_api") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/lock_api-0.1.5/src/lib.rs"
  extern = [
    ":scopeguard",
    ## Override: avoid dependency on on 'owning_ref'.
    # ":owning_ref",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]

  ## Override: avoid dependency on on 'owning_ref'.
  # features = [ "owning_ref" ]
}

rust_crate("log") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/log-0.4.6/src/lib.rs"
  extern = [ ":cfg_if" ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("matches") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/matches-0.1.8/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("memchr") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/memchr-2.2.0/src/lib.rs"
  features = [
    "default",
    "use_std",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]

  # Added by custom-build script.
  cfg = [
    "memchr_runtime_avx",
    "memchr_runtime_simd",
    "memchr_runtime_sse2",
    "memchr_runtime_sse42",
  ]
}

rust_crate("memoffset") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/memoffset-0.2.1/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("mio") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/mio-0.6.16/src/lib.rs"
  features = [
    "default",
    "with-deprecated",
  ]
  extern = [
    ":iovec",
    ":lazycell",
    ":log",
    ":net2",
    ":slab",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
  if (is_posix) {
    extern += [ ":libc" ]
  }
  if (is_win) {
    extern += [ ":kernel32" ]
    extern_version = [
      {
        crate_name = "miow"
        crate_version = "0.2.1"
      },
      {
        crate_name = "winapi"
        crate_version = "0.2.8"
      },
    ]
  }
}

rust_crate("net2") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/net2-0.2.33/src/lib.rs"
  features = [
    "default",
    "duration",
  ]
  extern = [ ":cfg_if" ]
  args = [
    "--cap-lints",
    "allow",
  ]
  if (is_posix) {
    extern += [ ":libc" ]
  }
  if (is_win) {
    extern += [ ":winapi" ]
  }
}

rust_crate("nodrop") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/nodrop-0.1.13/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("num_cpus") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/num_cpus-1.10.0/src/lib.rs"
  extern = [ ":libc" ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

## Override: avoid dependency on on 'owning_ref'.
# rust_crate("owning_ref") {
#   edition = "2015"
#   source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/owning_ref-0.4.0/src/lib.rs"
#   extern = [ ":stable_deref_trait" ]
#   args = [
#     "--cap-lints",
#     "allow",
#   ]
# }

rust_crate("parking_lot") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/parking_lot-0.7.1/src/lib.rs"
  features = [
    "default",
    "lock_api",

    ## Override: avoid dependency on on 'owning_ref'.
    # "owning_ref",
  ]
  extern = [
    ":lock_api",
    ":parking_lot_core",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("parking_lot_core") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/parking_lot_core-0.4.0/src/lib.rs"
  extern = [
    ":rand",
    ":smallvec",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]

  # Added by custom-build script.
  cfg = [ "has_localkey_try_with" ]
  if (is_posix) {
    extern += [ ":libc" ]
  }
  if (is_win) {
    extern += [ ":winapi" ]
  }
}

rust_crate("percent_encoding") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/percent-encoding-1.0.1/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("rand") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/rand-0.6.5/src/lib.rs"
  features = [
    "alloc",
    "default",
    "rand_core",
    "rand_jitter",
    "rand_os",
    "std",
  ]
  extern = [
    ":rand_chacha",
    ":rand_core",
    ":rand_hc",
    ":rand_isaac",
    ":rand_jitter",
    ":rand_os",
    ":rand_pcg",
    ":rand_xorshift",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]

  # Added by custom-build script.
  cfg = [
    "rustc_1_25",
    "rustc_1_26",
    "rustc_1_27",
  ]
  if (is_posix) {
    extern += [ ":libc" ]
  }
  if (is_win) {
    extern += [ ":winapi" ]
  }
}

rust_crate("rand_chacha") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.1.1/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]

  # Added by custom-build script.
  cfg = [ "rustc_1_26" ]

  # Override: use rand_core v0.4.0 instead of v0.3.1.
  extern = [ ":rand_core" ]

  ## Override: use rand_core v0.4.0 instead of v0.3.1.
  # extern_version = [
  #   {
  #     crate_name = "rand_core"
  #     crate_version = "0.3.1"
  #   },
  # ]
}

rust_crate("rand_core") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/rand_core-0.4.0/src/lib.rs"
  features = [
    "alloc",
    "std",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("rand_hc") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/rand_hc-0.1.0/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]

  # Override: use rand_core v0.4.0 instead of v0.3.1.
  extern = [ ":rand_core" ]

  ## Override: use rand_core v0.4.0 instead of v0.3.1.
  # extern_version = [
  #   {
  #     crate_name = "rand_core"
  #     crate_version = "0.3.1"
  #   },
  # ]
}

rust_crate("rand_isaac") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/rand_isaac-0.1.1/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]

  # Override: use rand_core v0.4.0 instead of v0.3.1.
  extern = [ ":rand_core" ]

  ## Override: use rand_core v0.4.0 instead of v0.3.1.
  # extern_version = [
  #   {
  #     crate_name = "rand_core"
  #     crate_version = "0.3.1"
  #   },
  # ]
}

rust_crate("rand_jitter") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/rand_jitter-0.1.3/src/lib.rs"
  features = [
    "rand_core",
    "std",
  ]
  extern = [ ":rand_core" ]
  args = [
    "--cap-lints",
    "allow",
  ]
  if (is_mac) {
    extern += [ ":libc" ]
  }
  if (is_win) {
    extern += [ ":winapi" ]
  }
}

rust_crate("rand_os") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/rand_os-0.1.3/src/lib.rs"
  extern = [ ":rand_core" ]
  args = [
    "--cap-lints",
    "allow",
  ]
  if (is_posix) {
    extern += [ ":libc" ]
  }

  # Per the #[link(...)] attribute found in 'src/macos.rs'.
  if (is_mac) {
    libs = [ "Security.framework" ]
  }
  if (is_win) {
    extern += [ ":winapi" ]
  }
}

rust_crate("rand_pcg") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/rand_pcg-0.1.2/src/lib.rs"
  extern = [ ":rand_core" ]
  args = [
    "--cap-lints",
    "allow",
  ]

  # Added by custom-build script.
  cfg = [ "rustc_1_26" ]
}

rust_crate("rand_xorshift") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/rand_xorshift-0.1.1/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]

  # Override: use rand_core v0.4.0 instead of v0.3.1.
  extern = [ ":rand_core" ]

  ## Override: use rand_core v0.4.0 instead of v0.3.1.
  # extern_version = [
  #   {
  #     crate_name = "rand_core"
  #     crate_version = "0.3.1"
  #   },
  # ]
}

rust_crate("regex") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/regex-1.1.6/src/lib.rs"
  features = [
    "default",
    "use_std",
  ]
  extern = [
    ":aho_corasick",
    ":memchr",
    ":regex_syntax",
    ":thread_local",
    ":utf8_ranges",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]

  # Added by custom-build script.
  cfg = [
    "regex_runtime_teddy_avx2",
    "regex_runtime_teddy_ssse3",
  ]
}

rust_crate("regex_syntax") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/regex-syntax-0.6.6/src/lib.rs"
  extern = [ ":ucd_util" ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("remove_dir_all") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/remove_dir_all-0.5.1/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
  if (is_win) {
    extern = [ ":winapi" ]
  }
}

rust_crate("ring") {
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/src/lib.rs"
  features = [
    "default",
    "dev_urandom_fallback",
    "use_heap",
  ]
  deps = [
    ":ring-core",
    ## Override: don't build 'ring-test' static library.
    # ":ring-test",
  ]
  extern = [
    ":libc",
    ":spin",
    ":untrusted",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
  if (is_linux) {
    extern += [ ":lazy_static" ]
  }

  # Per the #[link(...)] attribute found in 'src/rand.rs'.
  if (is_mac) {
    libs = [ "Security.framework" ]
  }
  if (is_win) {
    extern += [ ":winapi" ]
  }
}

static_library("ring-core") {
  include_dirs = [
    "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/include",
  ]
  sources = [
    "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/crypto/block.c",
    "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/crypto/cpu-intel.c",
    "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/crypto/crypto.c",
    "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/crypto/fipsmodule/bn/generic.c",
    "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/crypto/fipsmodule/bn/montgomery.c",
    "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/crypto/fipsmodule/bn/montgomery_inv.c",
    "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/crypto/fipsmodule/ec/ecp_nistz.c",
    "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/crypto/fipsmodule/ec/ecp_nistz256.c",
    "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/crypto/fipsmodule/ec/gfp_p256.c",
    "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/crypto/fipsmodule/ec/gfp_p384.c",
    "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/crypto/fipsmodule/modes/gcm.c",
    "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/crypto/limbs/limbs.c",
    "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/crypto/mem.c",
    "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/third_party/fiat/curve25519.c",
  ]
  if (is_linux) {
    sources += [
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aes-x86_64-elf.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aesni-gcm-x86_64-elf.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aesni-x86_64-elf.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/chacha-x86_64-elf.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/ghash-x86_64-elf.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/p256-x86_64-asm-elf.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/poly1305-x86_64-elf.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/sha256-x86_64-elf.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/sha512-x86_64-elf.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/vpaes-x86_64-elf.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/x86_64-mont-elf.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/x86_64-mont5-elf.S",
    ]

    # Supress "warning: '_GNU_SOURCE' macro redefined."
    cflags = [ "-Wno-macro-redefined" ]
  }
  if (is_mac) {
    sources += [
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aes-x86_64-macosx.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aesni-gcm-x86_64-macosx.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aesni-x86_64-macosx.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/chacha-x86_64-macosx.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/ghash-x86_64-macosx.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/p256-x86_64-asm-macosx.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/poly1305-x86_64-macosx.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/sha256-x86_64-macosx.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/sha512-x86_64-macosx.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/vpaes-x86_64-macosx.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/x86_64-mont-macosx.S",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/x86_64-mont5-macosx.S",
    ]
  }
  if (is_win) {
    libs = [
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aes-x86_64-nasm.obj",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aesni-gcm-x86_64-nasm.obj",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aesni-x86_64-nasm.obj",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/chacha-x86_64-nasm.obj",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/ghash-x86_64-nasm.obj",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/p256-x86_64-asm-nasm.obj",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/poly1305-x86_64-nasm.obj",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/sha256-x86_64-nasm.obj",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/sha512-x86_64-nasm.obj",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/vpaes-x86_64-nasm.obj",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/x86_64-mont-nasm.obj",
      "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/x86_64-mont5-nasm.obj",
    ]

    # Suppress "warning: '_addcarry_u64' is not a recognized builtin."
    cflags = [ "-Wno-ignored-pragma-intrinsic" ]
  }
}

## Override: don't build 'ring-test' static library.
# static_library("ring-test") {
#   include_dirs = [ "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/include" ]
#   sources = [ "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/crypto/constant_time_test.c" ]
# }

rust_crate("rustls") {
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/rustls-0.15.2/src/lib.rs"
  features = [
    "default",
    "log",
    "logging",
  ]
  extern = [
    ":base64",
    ":log",
    ":ring",
    ":sct",
    ":untrusted",
    ":webpki",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("rustyline") {
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/rustyline-3.0.0/src/lib.rs"
  extern = [
    ":dirs",
    ":libc",
    ":log",
    ":memchr",
    ":unicode_segmentation",
    ":unicode_width",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
  if (is_posix) {
    extern += [
      ":utf8parse",

      # Override: use nix v0.13.0 instead of v0.11.0.
      ":nix",
    ]
    ## Override: use nix v0.13.0 instead of v0.11.0.
    # extern_version = [
    #   {
    #     crate_name = "nix"
    #     crate_version = "0.11.0"
    #   },
    # ]
  }
  if (is_win) {
    extern += [ ":winapi" ]
  }
}

rust_crate("ryu") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ryu-0.2.7/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]

  # Added by custom-build script.
  cfg = [
    "integer128",
    "must_use_return",
  ]
}

rust_crate("scopeguard") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/scopeguard-0.3.3/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("sct") {
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/sct-0.5.0/src/lib.rs"
  extern = [
    ":ring",
    ":untrusted",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("serde") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/serde-1.0.90/src/lib.rs"
  features = [
    "default",
    "std",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]

  # Added by custom-build script.
  cfg = [
    "core_duration",
    "core_reverse",
    "de_boxed_c_str",
    "de_rc_dst",
    "integer128",
    "num_nonzero",
    "ops_bound",
    "range_inclusive",
  ]
}

rust_crate("serde_json") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/serde_json-1.0.39/src/lib.rs"
  features = [ "default" ]
  extern = [
    ":itoa",
    ":ryu",
    ":serde",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("slab") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/slab-0.4.2/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("smallvec") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/smallvec-0.6.9/lib.rs"
  features = [
    "default",
    "std",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("source_map_mappings") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/source-map-mappings-0.5.0/src/lib.rs"
  extern = [
    ":vlq",

    # Override: use rand v0.6.5 instead of v0.4.6.
    ":rand",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]

  ## Override: use rand v0.6.5 instead of v0.4.6.
  # extern_version = [
  #   {
  #     crate_name = "rand"
  #     crate_version = "0.4.6"
  #   },
  # ]
}

rust_crate("spin") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/spin-0.5.0/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

## Override: avoid dependency on on 'owning_ref'.
# rust_crate("stable_deref_trait") {
#   edition = "2015"
#   source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/stable_deref_trait-1.1.1/src/lib.rs"
#   features = [
#     "default",
#     "std",
#   ]
#   args = [
#     "--cap-lints",
#     "allow",
#   ]
# }

rust_crate("string") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/string-0.1.3/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("strsim") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/strsim-0.8.0/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("tempfile") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/tempfile-3.0.7/src/lib.rs"
  extern = [
    ":cfg_if",
    ":rand",
    ":remove_dir_all",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
  if (is_posix) {
    extern += [ ":libc" ]
  }
  if (is_win) {
    extern += [ ":winapi" ]
  }
}

rust_crate("textwrap") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/textwrap-0.11.0/src/lib.rs"
  extern = [ ":unicode_width" ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("thread_local") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/thread_local-0.3.6/src/lib.rs"
  extern = [ ":lazy_static" ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("time") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/time-0.1.42/src/lib.rs"
  extern = [ ":libc" ]
  args = [
    "--cap-lints",
    "allow",
  ]
  if (is_win) {
    extern += [ ":winapi" ]
  }
}

rust_crate("tokio") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.19/src/lib.rs"
  features = [
    "bytes",
    "codec",
    "default",
    "fs",
    "io",
    "mio",
    "num_cpus",
    "reactor",
    "rt-full",
    "sync",
    "tcp",
    "timer",
    "tokio-codec",
    "tokio-current-thread",
    "tokio-executor",
    "tokio-fs",
    "tokio-io",
    "tokio-reactor",
    "tokio-sync",
    "tokio-tcp",
    "tokio-threadpool",
    "tokio-timer",
    "tokio-trace-core",
    "tokio-udp",
    "tokio-uds",
    "udp",
    "uds",
  ]
  extern = [
    ":bytes",
    ":futures",
    ":mio",
    ":num_cpus",
    ":tokio_codec",
    ":tokio_current_thread",
    ":tokio_executor",
    ":tokio_fs",
    ":tokio_io",
    ":tokio_reactor",
    ":tokio_sync",
    ":tokio_tcp",
    ":tokio_threadpool",
    ":tokio_timer",
    ":tokio_trace_core",
    ":tokio_udp",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
  if (is_posix) {
    extern += [ ":tokio_uds" ]
  }
}

rust_crate("tokio_codec") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/tokio-codec-0.1.1/src/lib.rs"
  extern = [
    ":bytes",
    ":futures",
    ":tokio_io",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("tokio_current_thread") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/tokio-current-thread-0.1.6/src/lib.rs"
  extern = [
    ":futures",
    ":tokio_executor",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("tokio_executor") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/tokio-executor-0.1.7/src/lib.rs"
  extern = [
    ":crossbeam_utils",
    ":futures",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("tokio_fs") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/tokio-fs-0.1.6/src/lib.rs"
  extern = [
    ":futures",
    ":tokio_io",
    ":tokio_threadpool",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("tokio_io") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/tokio-io-0.1.12/src/lib.rs"
  extern = [
    ":bytes",
    ":futures",
    ":log",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("tokio_process") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/tokio-process-0.2.3/src/lib.rs"
  extern = [
    ":futures",
    ":mio",
    ":tokio_io",
    ":tokio_reactor",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
  if (is_posix) {
    extern += [
      ":libc",
      ":tokio_signal",
    ]
  }
  if (is_win) {
    extern += [
      ":mio_named_pipes",
      ":winapi",
    ]
  }
}

rust_crate("tokio_reactor") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/tokio-reactor-0.1.9/src/lib.rs"
  extern = [
    ":crossbeam_utils",
    ":futures",
    ":lazy_static",
    ":log",
    ":mio",
    ":num_cpus",
    ":parking_lot",
    ":slab",
    ":tokio_executor",
    ":tokio_io",
    ":tokio_sync",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("tokio_rustls") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/tokio-rustls-0.9.2/src/lib.rs"
  features = [
    "default",
    "futures",
    "tokio-io",
    "tokio-support",
  ]
  extern = [
    ":futures",
    ":rustls",
    ":tokio_io",
    ":webpki",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("tokio_sync") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/tokio-sync-0.1.5/src/lib.rs"
  extern = [
    ":fnv",
    ":futures",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("tokio_tcp") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/tokio-tcp-0.1.3/src/lib.rs"
  extern = [
    ":bytes",
    ":futures",
    ":iovec",
    ":mio",
    ":tokio_io",
    ":tokio_reactor",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("tokio_threadpool") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.14/src/lib.rs"
  extern = [
    ":crossbeam_deque",
    ":crossbeam_queue",
    ":crossbeam_utils",
    ":futures",
    ":log",
    ":num_cpus",
    ":rand",
    ":slab",
    ":tokio_executor",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("tokio_timer") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/tokio-timer-0.2.10/src/lib.rs"
  extern = [
    ":crossbeam_utils",
    ":futures",
    ":slab",
    ":tokio_executor",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("tokio_trace_core") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/tokio-trace-core-0.1.0/src/lib.rs"
  extern = [ ":lazy_static" ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("tokio_udp") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/tokio-udp-0.1.3/src/lib.rs"
  extern = [
    ":bytes",
    ":futures",
    ":log",
    ":mio",
    ":tokio_codec",
    ":tokio_io",
    ":tokio_reactor",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("try_lock") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/try-lock-0.2.2/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("ucd_util") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ucd-util-0.1.3/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("unicode_bidi") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/unicode-bidi-0.3.4/src/lib.rs"
  features = [ "default" ]
  extern = [ ":matches" ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("unicode_normalization") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/unicode-normalization-0.1.8/src/lib.rs"
  extern = [ ":smallvec" ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("unicode_segmentation") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/unicode-segmentation-1.2.1/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("unicode_width") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/unicode-width-0.1.5/src/lib.rs"
  features = [ "default" ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("untrusted") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/untrusted-0.6.2/src/untrusted.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("url") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/url-1.7.2/src/lib.rs"
  extern = [
    ":idna",
    ":matches",
    ":percent_encoding",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("utime") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/utime-0.2.1/src/lib.rs"

  if (is_win) {
    extern = [ ":kernel32" ]
    extern_version = [
      {
        crate_name = "winapi"
        crate_version = "0.2.8"
      },
    ]
  }

  if (is_posix) {
    extern = [ ":libc" ]
  }

  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("utf8_ranges") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/utf8-ranges-1.0.2/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("vec_map") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/vec_map-0.8.1/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("vlq") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/vlq-0.5.1/src/lib.rs"
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("want") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/want-0.0.6/src/lib.rs"
  extern = [
    ":futures",
    ":log",
    ":try_lock",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("webpki") {
  edition = "2015"
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/webpki-0.19.1/src/webpki.rs"
  features = [
    "default",
    "std",
    "trust_anchor_util",
  ]
  extern = [
    ":ring",
    ":untrusted",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

rust_crate("webpki_roots") {
  source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/webpki-roots-0.16.0/src/lib.rs"
  extern = [
    ":untrusted",
    ":webpki",
  ]
  args = [
    "--cap-lints",
    "allow",
  ]
}

## Override: use rand v0.6.5 instead.
# rust_crate("rand-0.4.6") {
#   crate_name = "rand"
#   crate_version = "0.4.6"
#   edition = "2015"
#   source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/rand-0.4.6/src/lib.rs"
#   features = [
#     "default",
#     "libc",
#     "std",
#   ]
#   args = [
#     "--cap-lints",
#     "allow",
#   ]
#   if (is_posix) {
#     extern = [ ":libc" ]
#   }
#
#   # Per the #[link(...)] attribute found in 'src/os.rs'.
#   if (is_mac) {
#     libs = [ "Security.framework" ]
#   }
#   if (is_win) {
#     extern = [ ":winapi" ]
#   }
# }

## Override: use rand_core v0.4.0 instead.
# rust_crate("rand_core-0.3.1") {
#   crate_name = "rand_core"
#   crate_version = "0.3.1"
#   edition = "2015"
#   source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/rand_core-0.3.1/src/lib.rs"
#   extern = [ ":rand_core" ]
#   args = [
#     "--cap-lints",
#     "allow",
#   ]
# }

if (is_posix) {
  rust_crate("arc_swap") {
    edition = "2015"
    source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.3.11/src/lib.rs"
    args = [
      "--cap-lints",
      "allow",
    ]
  }

  rust_crate("mio_uds") {
    edition = "2015"
    source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/mio-uds-0.6.7/src/lib.rs"
    extern = [
      ":iovec",
      ":libc",
      ":mio",
    ]
    args = [
      "--cap-lints",
      "allow",
    ]
  }

  rust_crate("nix") {
    edition = "2015"
    source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/nix-0.13.0/src/lib.rs"
    extern = [
      ":bitflags",
      ":cfg_if",
      ":libc",
      ":void",
    ]
    args = [
      "--cap-lints",
      "allow",
    ]
  }

  rust_crate("signal_hook") {
    edition = "2015"
    source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.8/src/lib.rs"
    extern = [
      ":arc_swap",
      ":libc",
    ]
    args = [
      "--cap-lints",
      "allow",
    ]
  }

  rust_crate("tokio_signal") {
    edition = "2015"
    source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/tokio-signal-0.2.7/src/lib.rs"
    extern = [
      ":futures",
      ":libc",
      ":mio",
      ":mio_uds",
      ":signal_hook",
      ":tokio_executor",
      ":tokio_io",
      ":tokio_reactor",
    ]
    args = [
      "--cap-lints",
      "allow",
    ]
  }

  rust_crate("tokio_uds") {
    edition = "2015"
    source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/tokio-uds-0.2.5/src/lib.rs"
    extern = [
      ":bytes",
      ":futures",
      ":iovec",
      ":libc",
      ":log",
      ":mio",
      ":mio_uds",
      ":tokio_codec",
      ":tokio_io",
      ":tokio_reactor",
    ]
    args = [
      "--cap-lints",
      "allow",
    ]
  }

  rust_crate("utf8parse") {
    edition = "2015"
    source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/utf8parse-0.1.1/src/lib.rs"
    args = [
      "--cap-lints",
      "allow",
    ]
  }

  rust_crate("void") {
    edition = "2015"
    source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs"
    features = [
      "default",
      "std",
    ]
    args = [
      "--cap-lints",
      "allow",
    ]
  }

  ## Override: use nix v0.13.0 instead.
  # rust_crate("nix-0.11.0") {
  #   crate_name = "nix"
  #   crate_version = "0.11.0"
  #   edition = "2015"
  #   source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/nix-0.11.0/src/lib.rs"
  #   extern = [
  #     ":bitflags",
  #     ":cfg_if",
  #     ":libc",
  #     ":void",
  #   ]
  #   args = [
  #     "--cap-lints",
  #     "allow",
  #   ]
  # }
}

if (is_win) {
  rust_crate("kernel32") {
    edition = "2015"
    source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/kernel32-sys-0.2.2/src/lib.rs"
    extern_version = [
      {
        crate_name = "winapi"
        crate_version = "0.2.8"
      },
    ]
    args = [
      "--cap-lints",
      "allow",
    ]

    # Added by custom-build script.
    libs = [ "kernel32.lib" ]
  }

  rust_crate("mio_named_pipes") {
    edition = "2015"
    source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/mio-named-pipes-0.1.6/src/lib.rs"
    extern = [
      ":log",
      ":mio",
      ":miow",
      ":winapi",
    ]
    args = [
      "--cap-lints",
      "allow",
    ]
  }

  rust_crate("miow") {
    edition = "2015"
    source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/miow-0.3.3/src/lib.rs"
    extern = [
      ":socket2",
      ":winapi",
    ]
    args = [
      "--cap-lints",
      "allow",
    ]
  }

  rust_crate("socket2") {
    edition = "2015"
    source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/socket2-0.3.8/src/lib.rs"
    extern = [ ":winapi" ]
    args = [
      "--cap-lints",
      "allow",
    ]
  }

  rust_crate("winapi") {
    edition = "2015"
    source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/winapi-0.3.7/src/lib.rs"
    features = [
      "consoleapi",
      "dbghelp",
      "errhandlingapi",
      "fileapi",
      "handleapi",
      "ioapiset",
      "knownfolders",
      "minwinbase",
      "minwindef",
      "namedpipeapi",
      "ntdef",
      "ntsecapi",
      "ntstatus",
      "objbase",
      "processenv",
      "processthreadsapi",
      "profileapi",
      "shlobj",
      "std",
      "synchapi",
      "sysinfoapi",
      "threadpoollegacyapiset",
      "timezoneapi",
      "winbase",
      "wincon",
      "winerror",
      "winnt",
      "winsock2",
      "winuser",
      "ws2def",
      "ws2ipdef",
      "ws2tcpip",
      "wtypesbase",

      # Added by custom-build script.
      "basetsd",
      "cfg",
      "cfgmgr32",
      "combaseapi",
      "devpropdef",
      "excpt",
      "guiddef",
      "in6addr",
      "inaddr",
      "ktmtypes",
      "libloaderapi",
      "limits",
      "lsalookup",
      "mstcpip",
      "objidl",
      "objidlbase",
      "propidl",
      "qos",
      "rpc",
      "rpcdce",
      "rpcndr",
      "shtypes",
      "sspi",
      "subauth",
      "unknwnbase",
      "vadefs",
      "vcruntime",
      "wincontypes",
      "wincred",
      "windef",
      "wingdi",
      "winreg",
      "wtypes",
    ]
    args = [
      "--cap-lints",
      "allow",
    ]

    # Added by custom-build script.
    libs = [
      "advapi32.lib",
      "cfgmgr32.lib",
      "credui.lib",
      "dbghelp.lib",
      "fwpuclnt.lib",
      "gdi32.lib",
      "kernel32.lib",
      "msimg32.lib",
      "ntdll.lib",
      "ole32.lib",
      "opengl32.lib",
      "secur32.lib",
      "shell32.lib",
      "synchronization.lib",
      "user32.lib",
      "winspool.lib",
      "ws2_32.lib",
    ]
  }

  rust_crate("ws2_32") {
    edition = "2015"
    source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/ws2_32-sys-0.2.1/src/lib.rs"
    extern_version = [
      {
        crate_name = "winapi"
        crate_version = "0.2.8"
      },
    ]
    args = [
      "--cap-lints",
      "allow",
    ]

    # Added by custom-build script.
    libs = [ "ws2_32.lib" ]
  }

  rust_crate("miow-0.2.1") {
    crate_name = "miow"
    crate_version = "0.2.1"
    edition = "2015"
    source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/miow-0.2.1/src/lib.rs"
    extern = [
      ":kernel32",
      ":net2",
      ":ws2_32",
    ]
    extern_version = [
      {
        crate_name = "winapi"
        crate_version = "0.2.8"
      },
    ]
    args = [
      "--cap-lints",
      "allow",
    ]
  }

  rust_crate("winapi-0.2.8") {
    crate_name = "winapi"
    crate_version = "0.2.8"
    edition = "2015"
    source_root = "$cargo_home/registry/src/github.com-1ecc6299db9ec823/winapi-0.2.8/src/lib.rs"
    args = [
      "--cap-lints",
      "allow",
    ]
  }
}