blob: 266e748267ef2946b2b5635c9ec2fa6922b6494a [file] [log] [blame]
# 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"]]