# 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"
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
rand = "0.8.4"

serde = { version="1", features=["serde_derive"] }
serde_json = "1"
deser-hjson = "1.0.2"
erased-serde = "0.3.12"
typetag = "0.1"

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"]
