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

# -------------- READ BEFORE EDITING ---------------
# This file describes the third-party packages used by Rust code and
# how they should be built.
#
# Every edit to this file should be followed by:
# - fx update-rustc-third-party
#
# Always request non-default features you use. This can sometimes get
# missed if another third-party crate in our build requests the same
# feature you use: your builds will usually work, but `fx rustdoc` will
# fail.
#
# More information is available in
# docs/development/languages/rust/third_party.md.

[package]
name = "fuchsia-third-party"
version = "0.1.0"

[dependencies]
# Keep this sorted alphabetically, please.
anyhow = "1.0.25"
arbitrary = { version = "0.4.0", features = ["derive"] }
argh = "0.1"
arc-swap = "0.4.4"
async-trait = "0.1.36"
base64 = "0.9"
bincode = "1"
bitfield = "0.13"
bitflags = "1"
bumpalo = "3.2.1"
byteorder = { version = "1", features = ["i128"] }
cargo_metadata = "0.9.1"
chrono = "0.4.11"
clap = "2.33"
crc = "1.8.1"
criterion = { version = "0.2", default-features = false }
crossbeam = "0.7.3"
csv = "1.0.7"
difference = "2.0.0"
fatfs = "0.4.0"
flate2 = { version = "1.0.14", default-features = false, features = ["rust_backend"] }
futures = "0.3.5"
futures-executor = "0.3.5"
futures-io = "0.3.5"
futures-test = "0.3.5"
futures-util = "0.3.5"
glob = "0.3.0"
heck = "0.3.1"
hex = "0.3.2"
itertools = "0.8"
json5format = "0.1.4"
lazy_static = "1.4"
libc = "0.2"
libm = "0.2.1"
log = { version = "0.4.4", features = ["std"] }
maplit = "1.0"
matches = "0.1.8"
maybe-owned = "0.3.2"
memchr = "2.0"
nom = { version = "5.0.0", default-features = false, features = ["std", "regexp_macros"] }
nom_locate = "2.0.0"
num-derive = "0.2.4"
num-traits= "0.2.5"
numtoa = "0.1.0"
once_cell = { version = "1.2.0", features = ["parking_lot"] }
parking_lot = "0.9"
paste = "0.1"
percent-encoding = "2.1"
pest = "2.1"
pest_derive = "2.1"
pest_generator = "2.1.3"
pin-utils = "0.1.0"
png = "0.14" # saved for future use
pretty_assertions = "0.5.1"
proc-macro-hack = "0.5.15"
proptest = "0.9.3"
proptest-derive = "0.1.1"
rand = "0.6"
rand_core = "0.4.0"
rand_os = "0.1.2"
rayon = "1.2.1"
regex = "1.0.6"
regex-syntax = "0.6.5"
rental = "0.5.4"
ring = "0.16"
rouille = "3.0.0"
rust-crypto = "0.2"
rustc-demangle = "0.1.16"
rustc-hash = "1.0.1"
scopeguard = "0.3.3"
semver = "0.9.0"
serde = { version = "1.0.104", features = ["derive"] }
serde_cbor = "0.11.1"
serde_derive = "1.0.104"
serde_json = "1"
serde_json5 = "0.1.0"
slab = "0.4"
socket2 = { version = "0.3.12", features = ["reuseport", "unix"] }
splines = "2.2.0"
static_assertions = "1.1.0"
structopt = "0.2.14"
tempfile = "3.1"
termion = "1.5.3"
test-case = "1.0.0"
thiserror = "1.0.9"
timebomb = "0.1.2"
toml = "0.5"
tracing = { version = "0.1.15", features = ["log"] }
tracing-futures = "0.2.4"
unicase = "2.2.0"
url = "2.1"
uuid = { version = "0.7.2", features = ["serde", "v4"] } # move ?
valico = "2.4.2"
wasm-bindgen = "0.2.60"
xml-rs = "0.8"
# move once target-side tests of host-side code have been removed
# in wayland/scanner:lib and unicode_block_generator :
num = "0.2"
unic-char-range = "0.9"
unic-ucd-block = "0.9"

[dependencies.tracing-subscriber]
version = "0.2.7"
default-features = false
features = ["chrono", "registry", "tracing-log"]

# Target-side only dependencies
[target.'cfg(target_os = "fuchsia")'.dependencies]
bytes = "0.5.4"
ct-logs = "0.6"
data-encoding = "2.1.2"
derivative = "2.1.1"
derp = "0.0.13"
euclid = "0.20.7"
eui48 = { version = "0.4.6", features = ["serde", "disp_hexstring"] }
freetype = "0.4" # saved for future use
getopts = "0.2"
http = "0.2.1"
hyper = { version = "0.13.4", default-features = false, features = ["stream"] }
hyper-rustls = { version = "0.20.0", default-features = false }
id_tree = "1.5"
itoa = "0.4"
lipsum = "0.6.0"
num-bigint = { version = "0.2", features = ["rand"] }
openat = "0.1.17"
owning_ref = "0.4.0"
pin-project = "0.4.6"
pretty = "0.5.2"
prettytable-rs = "0.8.0"
proc-macro-nested = "0.1.4"
rand_xorshift = "0.1.1"
rust_icu_common = { version = "0.3.0", default-features = false, features = ["renaming"] }
rust_icu_sys = { version = "0.3.0", default-features = false, features = ["renaming", "icu_version_in_env", "icu_version_67_plus"] }
rust_icu_ucal = { version = "0.3.0", default-features = false, features = ["renaming", "icu_version_in_env"] }
rust_icu_udat = { version = "0.3.0", default-features = false, features = ["renaming", "icu_version_in_env"] }
rust_icu_udata = { version = "0.3.0", default-features = false, features = ["renaming", "icu_version_in_env"] }
rust_icu_uenum = { version = "0.3.0", default-features = false, features = ["renaming", "icu_version_in_env"] }
rust_icu_uloc = { version = "0.3.0", default-features = false, features = ["renaming", "icu_version_in_env", "icu_version_67_plus"] }
rust_icu_ustring = { version = "0.3.0", default-features = false, features = ["renaming", "icu_version_in_env"] }
rust_icu_utext = { version = "0.3.0", default-features = false, features = ["renaming", "icu_version_in_env"] }
rustls = { version = "0.17.0", features = ["dangerous_configuration"] }
rusttype = "0.7.3"
serde_repr = "0.1.3"
smallvec = "0.6"
textwrap = "0.11.0"
time = "0.1"
tokio = { version = "0.2.16", default-features = false }
tokio-rustls = "0.13.0"
trust-dns-proto = { version = "0.19.2", default-features = false, features = ["testing"] }
trust-dns-resolver = { version = "0.19.2", default-features = false, features = ["testing"] }
unicode-normalization = "0.1"
unicode-segmentation = "1.0"
unicode-width = "0.1.3"
untrusted = "0.7"
utf8parse = "0.1"
vk-sys = "0.4.0"
void = "1.0.2"
vte = "0.3"
walkdir = "2.2.7"
webpki = "0.21"

# Host-side only dependencies
[target.'cfg(not(target_os = "fuchsia"))'.dependencies]
async-std = { version = "1.6.0", features = ["attributes"] }
handlebars = "2.0.0-beta.2"
home = "0.5.3"
indoc = "0.3.3"
petgraph = "0.5.1"
pulldown-cmark = "0.6.0"
proc-macro2 = "1.0.9"
quote = "1.0.2"
simplelog = "0.7.5"
signal-hook = "0.1.13"
smol = "0.1.11"
syn = { version = "1.0.5", features = ["full", "visit-mut", "extra-traits"] }
synstructure = "0.12.1"
tar = "0.4.25"
termios = "0.3.2"
zip = { version = "0.5.5", default-features = false, features = ["deflate"] }

# For crates that we don't want to vendor, create a dummy package in tiny_mirrors/ (see existing
# examples).
[patch.crates-io]
# Keep this sorted alphabetically, please.
backtrace-sys = { path = "tiny_mirrors/backtrace-sys" }
cmake = { path = "tiny_mirrors/cmake"}
# TODO(fxb/56201): Vendor fatfs when upstream makes a new release.
# See https://github.com/rafalh/rust-fatfs/pull/37#issuecomment-653760603 for more information.
fatfs = { path = "tiny_mirrors/fatfs" }
fuchsia-cprng = { path = "../../garnet/public/rust/fuchsia-cprng" }
futures-timer = { path = "tiny_mirrors/futures-timer" }
js-sys = { path = "tiny_mirrors/js-sys" }
libm = { path = "tiny_mirrors/libm" }
memchr = { path = "tiny_mirrors/memchr" }
nom_locate = { path = "tiny_mirrors/nom_locate" }
pkg-config = { path = "tiny_mirrors/pkg-config" }
regex-automata = { path = "tiny_mirrors/regex-automata" }
rust-crypto = { path = "../rust-mirrors/rust-crypto" }
serde_json5 = { path = "../rust-mirrors/serde_json5" }
servo-freetype-sys = { path = "tiny_mirrors/servo-freetype-sys" }
tracing-core = { path = "tiny_mirrors/tracing-core" }
wasm-bindgen-futures = { path = "tiny_mirrors/wasm-bindgen-futures" }
web-sys = { path = "tiny_mirrors/web-sys" }
wepoll-binding = { path = "tiny_mirrors/wepoll-binding" }
winapi = { path = "tiny_mirrors/winapi" }
winapi-util = { path = "tiny_mirrors/winapi-util" }

#################################################################################
###                            Cargo Gnaw Configs                             ###
#################################################################################

# All third_party targets get these cfgs

[gn.config]
remove_cfgs = [
  # Fuchsia defaults targets to 2018 edition. third_party can be any version
  "//build/config:rust_edition_2018",
  # Fuchsia forces targets to comply with 2018 idioms. third_party can ignore this
  "//build/config:rust_2018_idioms",
]
add_cfgs = []

# The below config data is for the targets being used by cargo-gnaw. This provides custom input that
# is usually provided by build.rs scripts. If the build.rs script is simple enough, cargo-gnaw will
# suggest what to put in here. if not, usually reading the build.rs script is sufficient.
#
# arguments to target:
#   rustflags - flags to pass to rustc
#   deps - native GN dependency
#   env_vars - environment variables, usually used for pretending to be cargo
#   platform - platform this configuration targets. Uses the rust cfg format (Ex: cfg(unix))
#
# Keep this sorted alphabetically, please.

[[gn.crate.anyhow."1.0.25"]]
# TODO(bwb) turn on when backtrace stabilizes
# rustflags = ["--cfg=backtrace"]

[[gn.crate.arrayvec."0.4.10"]]

[[gn.crate.bitflags."1.2.1"]]
rustflags = ["--cfg=bitflags_const_fn"]

[[gn.crate.brotli-sys."0.3.2"]]
deps = [ "//third_party/rust_crates/compat/brotli" ]

[[gn.crate.byteorder."1.3.1"]]
rustflags = ["--cfg=byteorder_i128"]

[[gn.crate.crc."1.8.1"]]
env_vars = ["OUT_DIR=../../../compat/crc"]

[[gn.crate.crc32fast."1.2.0"]]
rustflags = ["--cfg=crc32fast_stdarchx86"]

[[gn.crate.crypto."0.2.36"]]
deps = [ "//third_party/rust_crates/compat/rust-crypto" ]

[[gn.crate.httparse."1.3.3"]]
rustflags = ["--cfg=httparse_simd"]


[[gn.crate.libc."0.2.71"]]
rustflags = ["--cfg=freebsd11", "--cfg=libc_priv_mod_use", "--cfg=libc_union", "--cfg=libc_const_size_of", "--cfg=libc_align", "--cfg=libc_core_cvoid", "--cfg=libc_packedN"]

[[gn.crate.log."0.4.8"]]
rustflags = ["--cfg=atomic_cas"]

[[gn.crate.memchr."2.3.3"]]
rustflags = ["--cfg=memchr_runtime_simd", "--cfg=memchr_runtime_sse2", "--cfg=memchr_runtime_sse42", "--cfg=memchr_runtime_avx"]

[[gn.crate.mime_guess."1.8.6"]]
env_vars = ["OUT_DIR=../../../compat/mime_guess"]

[[gn.crate.num-bigint."0.2.2"]]
rustflags = ["--cfg=has_i128"]

[[gn.crate.num-complex."0.2.1"]]
rustflags = ["--cfg=has_i128"]

[[gn.crate.num_derive."0.2.4"]]
rustflags = ["--cfg=has_i128"]

[[gn.crate.num-integer."0.1.39"]]
rustflags = ["--cfg=has_i128"]

[[gn.crate.num-rational."0.2.1"]]
rustflags = ["--cfg=has_i128"]

[[gn.crate.num-traits."0.2.11"]]
rustflags = ["--cfg=has_i128"]

[[gn.crate.maybe-uninit."2.0.0"]]
rustflags = ["--cfg=derive_copy", "--cfg=repr_transparent", "--cfg=native_uninit"]

[[gn.crate.num-iter."0.1.37"]]
rustflags = ["--cfg=has_i128"]

[[gn.crate.proc-macro2."0.4.27"]]
rustflags = ["--cfg=u128", "--cfg=use_proc_macro", "--cfg=wrap_proc_macro"]

[[gn.crate.proc-macro2."1.0.9"]]
rustflags = ["--cfg=use_proc_macro", "--cfg=wrap_proc_macro"]

[[gn.crate.rand."0.6.5"]]
rustflags = ["--cfg=rustc_1_25","--cfg=rustc_1_26",  "--cfg=rustc_1_27",]

[[gn.crate.rand_chacha."0.1.1"]]
rustflags = ["--cfg=rustc_1_26"]

[[gn.crate.rand_pcg."0.1.1"]]
rustflags = ["--cfg=rust_1_26"]

[[gn.crate.ring."0.16.12"]]
deps = [ "//third_party/rust_crates/compat/ring:ring-core" ]

[[gn.crate.ryu."1.0.3"]]
rustflags = ["--cfg=integer128", "--cfg=must_use_return", "--cfg=maybe_uninit"]

[[gn.crate.ryu."0.2.7"]]
rustflags = ["--cfg=integer128", "--cfg=must_use_return"]

[[gn.crate.proc-macro-nested."0.1.4"]]
rustflags = []
env_vars = ["OUT_DIR=../../../compat/proc-macro-nested"]

[[gn.crate.serde."1.0.104"]]
rustflags = ["--cfg=ops_bound", "--cfg=core_reverse", "--cfg=de_boxed_c_str", "--cfg=de_boxed_path", "--cfg=de_rc_dst", "--cfg=core_duration", "--cfg=integer128", "--cfg=range_inclusive", "--cfg=num_nonzero", "--cfg=core_try_from", "--cfg=num_nonzero_signed", "--cfg=std_atomic64", "--cfg=std_atomic"]

[[gn.crate.unicase."1.4.2"]]
rustflags = ["--cfg=__unicase__default_hasher", "--cfg=__unicase__iter_cmp"]

[[gn.crate.unicase."2.5.1"]]
rustflags = ["--cfg=__unicase__default_hasher", "--cfg=__unicase__const_funs", "--cfg=__unicase__iter_cmp"]

[[gn.crate.valico."2.4.2"]]
env_vars = ["OUT_DIR=../../../../compat/valico"]


# These don't have build.rs scripts, but they rely on Cargo populating the environment variables
#
# Keep this sorted alphabetically, please.
[[gn.crate.handlebars."2.0.0-beta.2"]]
# pest relies on this being set to find the grammar file
env_vars = [ "CARGO_MANIFEST_DIR=../../third_party/rust_crates/vendor/handlebars" ]

[[gn.crate.rust_icu_common."0.3.0"]]
configs = [ "//src/lib/icu:version" ]
[[gn.crate.rust_icu_ucal."0.3.0"]]
configs = [ "//src/lib/icu:version" ]
[[gn.crate.rust_icu_udat."0.3.0"]]
configs = [ "//src/lib/icu:version" ]
[[gn.crate.rust_icu_udata."0.3.0"]]
configs = [ "//src/lib/icu:version" ]
[[gn.crate.rust_icu_uenum."0.3.0"]]
configs = [ "//src/lib/icu:version" ]
[[gn.crate.rust_icu_uloc."0.3.0"]]
configs = [ "//src/lib/icu:version" ]
[[gn.crate.rust_icu_ustring."0.3.0"]]
configs = [ "//src/lib/icu:version" ]
[[gn.crate.rust_icu_utext."0.3.0"]]
configs = [ "//src/lib/icu:version" ]


[[gn.crate.unic-common."0.9.0"]]
env_vars = [ "CARGO_PKG_VERSION=\\\"0.9.0\\\"", "CARGO_PKG_NAME=\\\"unic-common\\\"",  "CARGO_PKG_DESCRIPTION=\\\"\\\"", ]
[[gn.crate.unic-ucd-version."0.9.0"]]
env_vars = [ "CARGO_PKG_VERSION=\\\"0.9.0\\\"", "CARGO_PKG_NAME=\\\"unic-ucd-version\\\"",  "CARGO_PKG_DESCRIPTION=\\\"\\\"", ]
[[gn.crate.unic-char-range."0.9.0"]]
env_vars = [ "CARGO_PKG_VERSION=\\\"0.9.0\\\"", "CARGO_PKG_NAME=\\\"unic-char-range\\\"",  "CARGO_PKG_DESCRIPTION=\\\"\\\"", ]
[[gn.crate.unic-char-property."0.9.0"]]
env_vars = [ "CARGO_PKG_VERSION=\\\"0.9.0\\\"", "CARGO_PKG_NAME=\\\"unic-char-property\\\"",  "CARGO_PKG_DESCRIPTION=\\\"\\\"", ]
[[gn.crate.unic-ucd-block."0.9.0"]]
env_vars = [ "CARGO_PKG_VERSION=\\\"0.9.0\\\"", "CARGO_PKG_NAME=\\\"unic-ucd-block\\\"",  "CARGO_PKG_DESCRIPTION=\\\"\\\"", ]
[[gn.crate.trust_dns_resolver."0.19.2"]]
env_vars = [ "CARGO_PKG_VERSION=\\\"0.19.2\\\"" ]


# These dependencies have build.rs scripts, but dummy invokations indicating they
# do not need to be run are sufficient for our build
#
# Keep this sorted alphabetically, please.
[[gn.crate.backtrace-sys."0.1.32"]]
[[gn.crate.bincode."1.1.1"]]
[[gn.crate.crossbeam-epoch."0.8.2"]]
[[gn.crate.crossbeam-utils."0.7.2"]]
[[gn.crate.freetype_sys."4.0.5"]]
[[gn.crate.getrandom."0.1.13"]]
[[gn.crate.memoffset."0.5.3"]]
[[gn.crate.nom."5.0.0"]]
[[gn.crate.parking_lot."0.9.0"]]
[[gn.crate.parking_lot_core."0.6.2"]]
[[gn.crate.pulldown-cmark."0.6.0"]]
[[gn.crate.rayon-core."1.7.0"]]
[[gn.crate.rust_icu_sys."0.3.0"]]
configs = [ "//src/lib/icu:version" ]
[[gn.crate.rust_icu_uloc."0.3.0"]]
[[gn.crate.syn."1.0.21"]]
[[gn.crate.test-case."1.0.0"]]
[[gn.crate.wasm-bindgen-shared."0.2.60"]]
# Do not quote, this is embedded directly in .wasm sections and is needed by wasm-bindgen.
env_vars = [ "CARGO_PKG_VERSION=0.2.60"]
[[gn.crate.wasm-bindgen."0.2.60"]]
