blob: 3979b49eae956cc5098eac9283eef72c6eef8072 [file] [log] [blame] [edit]
[package]
name = "libtock"
version = "0.2.0"
authors = ["Tock Project Developers <tock-dev@googlegroups.com>"]
license = "MIT/Apache-2.0"
edition = "2018"
[features]
alloc = ["libtock_core/alloc"]
custom_panic_handler = ["libtock_core/custom_panic_handler"]
custom_alloc_error_handler = ["libtock_core/custom_alloc_error_handler"]
# In the QEMU-emulated HiFive1 target, we do not have connected GPIO pins or a
# working timer interface. These features allow the test's user to disable these
# tests in environments where they will not pass.
__internal_disable_gpio_in_integration_test = []
__internal_disable_timer_in_integration_test = []
[dependencies]
libtock_core = { path = "core" }
libtock_codegen = { path = "codegen" }
futures = { version = "0.3.1", default-features = false, features = ["unstable", "cfg-target-has-atomic"] }
futures-core = { version = "=0.3.29", default-features = false, features = ["unstable", "cfg-target-has-atomic"] }
[dev-dependencies]
corepack = { version = "0.4.0", default-features = false, features = ["alloc"] }
# We pin the serde version because newer serde versions may not be compatible
# with the nightly toolchain used by libtock-rs.
serde = { version = "=1.0.114", default-features = false, features = ["derive"] }
ctap2-authenticator = { git = "https://gitlab.com/ctap2-authenticator/ctap2-authenticator.git" }
p256 = { version = "0.7" , default-features = false, features = ["arithmetic", "ecdsa", "ecdsa-core"] }
# p256 depends transitively on bitvec 0.18. bitvec 0.18.5 depends on radium
# 0.3.0, which does not work on platforms that lack atomics. This prevents cargo
# from selecting bitvec 0.18.5, which avoids the radium 0.3.0 issue.
bitvec = { version = "<=0.18.4", default-features = false }
subtle = { version = "2.3.0", default-features = false, features = ["i128"] }
generic-array = { version = "0.14.3" }
libmctp = { version = "0.1.0" }
# We need to override this to allow builds for targets that don't support atomics.
# Once a version newer then 0.4.11 is released we can update to use that.
# See: https://github.com/rust-lang/log/releases
[patch.crates-io]
log = { git = "https://github.com/rust-lang/log.git", branch = "master" }
[[example]]
name = "alloc_error"
path = "examples-features/alloc_error.rs"
required-features = ["alloc", "custom_alloc_error_handler"]
[[example]]
name = "ctap_features"
path = "examples-features/ctap.rs"
required-features = ["alloc", "custom_alloc_error_handler"]
[[example]]
name = "ble_scanning"
path = "examples-features/ble_scanning.rs"
required-features = ["alloc"]
[[example]]
name = "libtock_test"
path = "examples-features/libtock_test.rs"
required-features = ["alloc"]
[[example]]
name = "panic"
path = "examples-features/panic.rs"
required-features = ["custom_panic_handler"]
[[example]]
name = "simple_ble"
path = "examples-features/simple_ble.rs"
required-features = ["alloc"]
[profile.dev]
panic = "abort"
lto = true
debug = true
opt-level = 0
[profile.release]
panic = "abort"
lto = true
debug = true
[workspace]
exclude = [ "tock" ]
members = [
"codegen",
"core",
"platform",
"runtime",
"test_runner",
"tools/print_sizes",
]