# 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"
async-trait = "0.1.11"
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 }
csv = "1.0.7"
difference = "2.0.0"
futures = { version = "0.3.5", features = ["io-compat"] }
futures-executor = "0.3.5"
futures-io = "0.3.5"
futures-test = "0.3.5"
futures-util = { version = "0.3.5", features = ["io-compat"] }
glob = "0.3.0"
heck = "0.3.1"
itertools = "0.8"
json5 = "0.2.4"
json5format = "0.1.0"
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"
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-hash = "1.0.1"
scopeguard = "0.3.3"
semver = "0.9.0"
serde = { version = "1.0.104", features = ["derive"] }
serde_derive = "1.0.104"
serde_json = "1"
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.10", features = ["log"] }
tracing-futures = "0.2.0"
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.5"
default-features = false
features = ["chrono", "registry", "tracing-log"]

# Target-side only dependencies
[target.'cfg(target_os = "fuchsia")'.dependencies]
bytes = "0.5.4"
crossbeam = "0.7.3"
ct-logs = "0.6"
data-encoding = "2.1.2"
derivative = "1.0.2"
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"
hex = "0.3.2"
http = "0.1.21"
hyper = { version = "0.12.35", default-features = false }
hyper-rustls = { version = "0.17.1", 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"
pin-utils = "0.1.0"
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.2.2", default-features = false, features = ["renaming"] }
rust_icu_sys = { version = "0.2.2", default-features = false, features = ["renaming"] }
rust_icu_ucal = { version = "0.2.2", default-features = false, features = ["renaming"] }
rust_icu_ucol = { version = "0.2.2", default-features = false, features = ["renaming"] }
rust_icu_udat = { version = "0.2.2", default-features = false, features = ["renaming"] }
rust_icu_udata = { version = "0.2.2", default-features = false, features = ["renaming"] }
rust_icu_uenum = { version = "0.2.2", default-features = false, features = ["renaming"] }
rust_icu_uloc = { version = "0.2.2", default-features = false, features = ["renaming", "icu_version_64_plus"] }
rust_icu_umsg = { version = "0.2.2", default-features = false, features = ["renaming"] }
rust_icu_ustring = { version = "0.2.2", default-features = false, features = ["renaming"] }
rust_icu_utext = { version = "0.2.2", default-features = false, features = ["renaming"] }
rustls = { version = "0.16", features = ["dangerous_configuration"] }
rusttype = "0.7.3"
serde_repr = "0.1.3"
smallvec = "0.6"
textwrap = "0.11.0"
time = "0.1"
tokio-rustls = "0.10.2" # For its async server TlsAcceptor/TlsStream types. Not actually using tokio.
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.5.0", features = ["attributes"] }
flate2 = { version = "1.0.14", default-features = false, features = ["rust_backend"] }
handlebars = "2.0.0-beta.2"
indoc = "0.3.3"
pulldown-cmark = "0.6.0"
proc-macro2 = "1.0.9"
quote = "1.0.2"
simplelog = "0.7.5"
signal-hook = "0.1.13"
syn = { version = "1.0.5", features = ["full", "visit-mut", "extra-traits"] }
synstructure = "0.12.1"
tar = "0.4.25"
termios = "0.3.2"
tokio = "0.1.22"

# 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"}
fuchsia-cprng = { path = "../../garnet/public/rust/fuchsia-cprng" }
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" }
servo-freetype-sys = { path = "tiny_mirrors/servo-freetype-sys" }
web-sys = { path = "tiny_mirrors/web-sys" }
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.hyper."0.12.35"]]
rustflags = ["--cfg=error_source", "--cfg=try_from"]

[[gn.crate.libc."0.2.66"]]
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.9"]]
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.json5."0.2.4"]]
# pest relies on this being set to find the grammar file
env_vars = [ "CARGO_MANIFEST_DIR=../../third_party/rust_crates/vendor/json5" ]

[[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.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.kernel32."0.2.2"]]
[[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.4.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.2.2"]]
[[gn.crate.rust_icu_uloc."0.2.2"]]
[[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"]]
[[gn.crate.ws2_32."0.2.1"]]
