# 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.4"
arc-swap = "0.4.4"
async-trait = "0.1.40"
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"
cxx = "0.3.5"
cxxbridge-cmd = "0.3.5"
darling = "0.12.0"
data-encoding = "2.1.2"
derp = "0.0.13"
difference = "2.0.0"
fatfs = "0.4.0"
flate2 = { version = "1.0.14", default-features = false, features = ["rust_backend"] }
futures = "=0.3.6"
futures-core = "=0.3.6"
futures-channel = "=0.3.6"
futures-executor = "=0.3.6"
futures-macro = "=0.3.6"
futures-io = "=0.3.6"
futures-sink = "=0.3.6"
futures-task = "=0.3.6"
futures-test = "=0.3.6"
futures-util = "=0.3.6"
glob = "0.3.0"
heck = "0.3.1"
hex = "0.3.2"
http = "0.2.1"
hyper = { version = "0.13.4", default-features = false, features = ["stream"] }
itertools = "0.8"
itoa = "0.4"
json5format = "0.1.4"
lazy_static = "1.4"
libc = "0.2.82"
libm = "0.2.1"
linked-hash-map = "0.5.3"
log = { version = "0.4.11", 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 = "1.0"
percent-encoding = "2.1"
pest = "2.1"
pest_derive = "2.1"
pest_generator = "2.1.3"
pin-project = "0.4.26"
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"
rustls = { version = "0.17.0", features = ["dangerous_configuration"] }
scopeguard = "0.3.3"
semver = "0.9.0"
serde = { version = "1.0.116", features = ["derive"] }
serde_cbor = "0.11.1"
serde_derive = "1.0.116"
serde_json = "1.0.59"
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.1.0"
textwrap = "0.11.0"
thiserror = "1.0.9"
timebomb = "0.1.2"
tokio = { version = "0.2.16", default-features = false }
toml = "0.5"
tracing = { version = "0.1.15", features = ["log"] }
tracing-futures = "0.2.4"
unicase = "2.2.0"
untrusted = "0.7"
url = "2.1"
uuid = { version = "0.7.2", features = ["serde", "v4"] } # move ?
valico = "2.4.2"
wasm-bindgen = "0.2.60"
webpki = "0.21"
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"
unicode-segmentation = "1.0"
unicode-width = "0.1.3"
utf8parse = "0.1"

[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"
# do not add back without verifying certificate transparency is ready to use - see fxbug.dev/25100
# ct-logs = "0.6"
derivative = "2.1.1"
euclid = "0.22.1"
eui48 = { version = "0.4.6", features = ["serde", "disp_hexstring"] }
freetype = "0.4" # saved for future use
getopts = "0.2"
hyper-rustls = { version = "0.20.0", default-features = false }
lipsum = "0.6.0"
num-bigint = { version = "0.2", features = ["rand"] }
openat = "0.1.17"
owning_ref = "0.4.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.4.1", default-features = false, features = ["renaming"] }
rust_icu_sys = { version = "0.4.1", default-features = false, features = ["renaming", "icu_version_in_env", "icu_version_67_plus"] }
rust_icu_ucal = { version = "0.4.1", default-features = false, features = ["renaming", "icu_version_in_env"] }
rust_icu_udat = { version = "0.4.1", default-features = false, features = ["renaming", "icu_version_in_env"] }
rust_icu_udata = { version = "0.4.1", default-features = false, features = ["renaming", "icu_version_in_env"] }
rust_icu_uenum = { version = "0.4.1", default-features = false, features = ["renaming", "icu_version_in_env"] }
rust_icu_uloc = { version = "0.4.1", default-features = false, features = ["renaming", "icu_version_in_env", "icu_version_67_plus"] }
rust_icu_ustring = { version = "0.4.1", default-features = false, features = ["renaming", "icu_version_in_env"] }
rust_icu_utext = { version = "0.4.1", default-features = false, features = ["renaming", "icu_version_in_env"] }
rusttype = "0.7.3"
serde_repr = "0.1.3"
smallvec = "0.6"
time = "0.1"
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"] }
ttf-parser = "0.8.2"
unicode-normalization = "0.1"
vk-sys = "0.4.0"
void = "1.0.2"
vte = "0.3"
walkdir = "2.2.7"

# Host-side only dependencies
[target.'cfg(not(target_os = "fuchsia"))'.dependencies]
async-std = { version = "1.6.0", features = ["attributes"] }
crossterm = "0.17.7"
handlebars = "2.0.0-beta.2"
home = "0.5.3"
hyper-rustls = { version = "0.20.0", default-features = false, features = ["rustls-native-certs"] }
indoc = "0.3.3"
nix = "0.18" # not included in fuchsia so we don't depend on #[cfg(unix)] things on target
petgraph = "0.5.1"
proc-macro2 = "1.0.9"
pulldown-cmark = "0.6.0"
quote = "1.0.2"
serial_test = "0.5.1" # Not for use on Fuchsia, only for a single process.
signal-hook = "0.1.16"
simplelog = "0.8.0"
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"
tui = { version = "0.10.0", features = ["crossterm"], default-features = false }
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(fxbug.dev/56201): Vendor fatfs when upstream makes a new release.
# See https://github.com/rafalh/rust-fatfs/pull/37#issuecomment-653760603 for more information.
crossterm_winapi = { path = "tiny_mirrors/crossterm_winapi" }
fatfs = { path = "tiny_mirrors/fatfs" }
fuchsia-cprng = { path = "../../src/lib/zircon/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" }
miow = { path = "tiny_mirrors/miow" }
nom_locate = { path = "tiny_mirrors/nom_locate" }
ntapi = { path = "tiny_mirrors/ntapi" }
pkg-config = { path = "tiny_mirrors/pkg-config" }
regex-automata = { path = "tiny_mirrors/regex-automata" }
rust-crypto = { path = "../rust-mirrors/rust-crypto" }
security-framework = { path = "tiny_mirrors/security-framework" }
serde_json5 = { path = "../rust-mirrors/serde_json5" }
servo-freetype-sys = { path = "tiny_mirrors/servo-freetype-sys" }
# termcolor 1.1.0 w/ UNLICENSE file removed per OSRB
termcolor = { path = "tiny_mirrors/termcolor" }
tracing-core = { path = "tiny_mirrors/tracing-core" }
ttf-parser = { path = "tiny_mirrors/ttf-parser" }
wasm-bindgen-futures = { path = "tiny_mirrors/wasm-bindgen-futures" }
web-sys = { path = "tiny_mirrors/web-sys" }
wepoll-binding = { path = "tiny_mirrors/wepoll-binding" }
winapi-i686-pc-windows-gnu = { path = "tiny_mirrors/winapi-i686-pc-windows-gnu" }
winapi-x86_64-pc-windows-gnu = { path = "tiny_mirrors/winapi-x86_64-pc-windows-gnu" }
winapi = { path = "tiny_mirrors/winapi" }
winapi-util = { path = "tiny_mirrors/winapi-util" }

#################################################################################
###                            Cargo GNaw Configs                             ###
###                                                                           ###
### See GNaw's documentation in //tools/cargo-gnaw/README.md for more details ###
### and examples.                                                             ###
#################################################################################

# Global GN configs that will be added or removed from all generated targets

[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
#   configs - native GN config to use
#
# Keep this sorted alphabetically, please.

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

[gn.package.arrayvec."0.4.10"]

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

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

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

[gn.package.core-foundation-sys."0.7.0".platform."cfg(target_os = \"macos\")"]
rustflags = ["-lframework=CoreFoundation"]

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

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

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

[gn.package.libc."0.2.82"]
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", "--cfg=libc_cfg_target_vendor"]

[gn.package.log."0.4.11"]
rustflags = ["--cfg=atomic_cas"]

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

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

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

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

[gn.package.num-derive."0.2.4"]
rustflags = ["--cfg=has_i128"]

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

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

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

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

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

[gn.package.pin-project-internal."0.4.26"]
rustflags = ["--cfg=underscore_consts", "--cfg=deprecated_proc_macro"]

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

# cargo-gnaw suggested "--cfg=proc_macro_span" as well but proc_macro_span is still an unstable feature.
[gn.package.proc-macro2."1.0.24"]
rustflags = ["--cfg=span_locations", "--cfg=lexerror_display", "--cfg=hygiene", "--cfg=use_proc_macro", "--cfg=wrap_proc_macro"]

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

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

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

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

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

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

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

[gn.package.serde."1.0.116"]
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.package.serde_derive."1.0.116"]
rustflags = ["--cfg=underscore_consts"]

[gn.package.tiny_http."0.6.2"]
# TODO(61282): Fix the leaks and remove this.
deps = [ "//build/config/sanitizers:suppress-lsan.DO-NOT-USE-THIS" ]

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

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

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


# These don't have build.rs scripts but require platform-specific target configuration.
#
# Keep this sorted alphabetically, please.

[gn.package.backtrace."0.3.42".platform."cfg(target_os = \"fuchsia\")"]
configs = [ "//build/config/fuchsia:libunwind" ]


# These don't have build.rs scripts, but they rely on Cargo populating the environment variables
#
# Keep this sorted alphabetically, please.

[gn.package.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.package.rust_icu_common."0.4.1"]
configs = [ "//src/lib/icu:version" ]
[gn.package.rust_icu_sys."0.4.1"]
configs = [ "//src/lib/icu:version" ]
[gn.package.rust_icu_ucal."0.4.1"]
configs = [ "//src/lib/icu:version" ]
[gn.package.rust_icu_udat."0.4.1"]
configs = [ "//src/lib/icu:version" ]
[gn.package.rust_icu_udata."0.4.1"]
configs = [ "//src/lib/icu:version" ]
[gn.package.rust_icu_uenum."0.4.1"]
configs = [ "//src/lib/icu:version" ]
[gn.package.rust_icu_uloc."0.4.1"]
configs = [ "//src/lib/icu:version" ]
[gn.package.rust_icu_ustring."0.4.1"]
configs = [ "//src/lib/icu:version" ]
[gn.package.rust_icu_utext."0.4.1"]
configs = [ "//src/lib/icu:version" ]

[gn.package.trust-dns-resolver."0.19.2"]
env_vars = [ "CARGO_PKG_VERSION=\\\"0.19.2\\\"" ]

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

[gn.package.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" ]

# These dependencies have build.rs scripts, but dummy invocations indicating they
# do not need to be run are sufficient for our build
#
# Keep this sorted alphabetically, please.
[gn.package.backtrace-sys."0.1.32"]
[gn.package.bincode."1.1.1"]
[gn.package.crossbeam-epoch."0.8.2"]
[gn.package.crossbeam-utils."0.7.2"]
# cxx's build.rs is only used to build it's src/cxx.cc file, for crates that use cxx and build with
# cargo. It is replaced with //src/lib/rust_cxx:cxx_lib.
[gn.package.cxx."0.3.5"]
[gn.package.getrandom."0.1.13"]
# cxx uses this to link against libc++ or libstdc++, for crates that use cxx and build with cargo.
# It is replaced by our own build machinery.
[gn.package.link-cplusplus."1.0.2"]
[gn.package.memoffset."0.5.3"]
[gn.package.nix."0.18.0"]
[gn.package.nom."5.0.0"]
[gn.package.parking_lot."0.9.0"]
[gn.package.parking_lot_core."0.6.2"]
[gn.package.pulldown-cmark."0.6.0"]
[gn.package.rayon-core."1.7.0"]
[gn.package.servo-freetype-sys."4.0.5"]
[gn.package.syn."1.0.58"]
[gn.package.test-case."1.1.0"]
[gn.package.wasm-bindgen."0.2.60"]


# This section defines GN binary targets that should be generated from Cargo binary targets. (By
# default, cargo-gnaw will only generate targets for libraries and proc-macros.)
#
# Example:
#
#   [gn.package.cargo-package-name."1.2.3".binary.cargo-target-name]
#   output_name = "gn-name"
#   rustflags = [ ... ]
#   configs = [ ... ]
#
#
# In the above example, "gn-name" will become both the name of the group target to depend
# upon and the executable's output_name, so usages can assume output_name == target_name (and must
# since get_target_outputs only works within the same file).
#
# "cargo-target-name" is the name of the Cargo binary target within "cargo-package-name".
#
# Keep this sorted alphabetically, please.

[gn.package.cxxbridge-cmd."0.3.5".binary.cxxbridge]
output_name = "cxxbridge"

[gn.package.serde_json."1.0.59"]
rustflags = ["--cfg=limb_width_64"]
