# 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 = "1.0"
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"

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