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

[package]
name = "opentitanlib"
version = "0.1.0"
authors = ["lowRISC contributors"]
edition = "2018"

[dependencies]
anyhow = {version="1.0", features=["backtrace"]}
thiserror = "1.0"
lazy_static = "1.4.0"
regex = "1"
nix = "0.17.0"
bitflags = "1.0"
log = "0.4"
# TODO(cfrantz): work with cr1901 to release 0.3.0.
safe-ftdi = { git = "https://github.com/cr1901/safe-ftdi" }
num_enum = "0.5.2"
byteorder = "1.4.3"
structopt = "0.3"
rusb = "0.8.1"
serialport = "4.0.1"
zerocopy = "0.5.0"
hex = "0.4.3"
# We depend on mundane, but `cargo raze` can't auto generate bazel rules for it.
# In order to not break the current meson-based build system, we'll leave
# mundane as a dependency.  To regenerate the bazel dependency rules via
# `cargo raze`, you'll have to temporarily comment out `mundane`.
mundane = "0.5.0"
memoffset = "0.6.0"
num-bigint-dig = "0.7.0"
num-traits = "0.2.14"
sha2 = "0.10.1"
humantime = "2.1.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

serde = { version="1", features=["serde_derive"] }
serde_json = "1"
deser-hjson = "1.0.2"
rand = "0.8.4"
erased-serde = "0.3.12"
opentitantool_derive = {path = "opentitantool_derive"}

[package.metadata.raze.crates.libudev-sys.'0.1.4']
gen_buildrs = true
patches = [
    "@//third_party/cargo/patches:libudev-sys-0.1.4.patch"
]
patch_args = ["-p1"]
