# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

[package]
name = "cargo_raze_deps"
version = "0.0.0"
publish = false

[lib]
path = "empty_file_to_appease_cargo.rs"

# Keep sorted.
# Please avoid version numbers that only have one component.
[dependencies]
anyhow = { version = "1.0.57", features=["backtrace"] }
arrayvec = { version = "0.7", features=["serde"] }
atty = "0.2"
bitflags = "1.0"
bitvec = "1.0.1"
byteorder = "1.4.3"
chrono = "0.4"
crc = "3.0"
deser-hjson = "1.0.2"
directories = "4.0.1"
env_logger = "0.8.3"
erased-serde = "0.3.12"
hex = "0.4.3"
humantime = "2.1.0"
humantime-serde = "1.1"
indicatif = "0.16.2"
lazy_static = "1.4.0"
log = "0.4"
memoffset = "0.6.0"
mio = { version = "0.7.0", features = ["os-poll", "net", "os-ext"] }
mio-signals = "0.1.5" # mio-signals 0.2.0 exists, but requires mio 0.8.0
nix = "0.17.0"
num-bigint-dig = "0.7.0"
num-traits = "0.2.14"
num_enum = "0.5.2"
object = "0.25.3"
proc-macro-error = "1.0"
proc-macro2 = "1.0.45"
quote = "1.0"
rand = "0.8.4"
raw_tty = "0.1.0"
regex = "1.5.4"
rsa = "0.5.0"
rusb = "0.8.1"
serde = { version="1.0", features=["serde_derive"] }
serde_derive = "1.0"

serde_bytes = "0.11"
serde_json = "1.0.69"
serialport = "4.0.1"
sha2 = "0.10.1"
shellwords = "1.1.0"
structopt = "0.3"
syn = "1.0"
tempfile = "3.3.0"
thiserror = "1.0.24"
typetag = "0.1"
zerocopy = "0.5.0"

# We'd like to referece safe-ftdi and serde_annotate by their Git repos, but
# we also need to support airgapped builds and bazel does not support git
# repo references for airgapped builds.  As such, these two libraries are
# downloaded as http_archive dependencies.  In order to have a globally
# consistent set of crate dependencies, we have to list the deps of those
# two crates here.  Those crates reference their deps via a `@crate_index`
# repo.  In OpenTitan, we create our own `@crate_index` repo which is
# share globally among all bazel sub-repositories.

# safe-ftdi = { git = "https://github.com/lowRISC/safe-ftdi" }
libftdi1-sys = "1.0.0"

# serde_annotate = { git = "https://github.com/lowRISC/serde-annotate", branch="main"}
ansi_term = "0.12"
once_cell = "1.12"
pest = "2.2"
pest_derive = "2.2"
