[package]
name = "trezor_lib"
version = "0.1.0"
authors = ["SatoshiLabs <info@satoshilabs.com>"]
edition = "2021"
build = "build.rs"

[features]
default = ["model_tt"]
crypto = ["zeroize"]
model_tt = ["jpeg"]
model_tr = []
model_mercury = ["jpeg", "dma2d"]
micropython = []
protobuf = ["micropython"]
ui = []
dma2d = []
xframebuffer = []
display_mono = []
display_rgb565 = ["ui_antialiasing"]
display_rgba8888 = ["ui_antialiasing"]
framebuffer = []
framebuffer32bit = []
ui_debug = []
ui_antialiasing = []
ui_blurring = []
ui_jpeg_decoder = ["jpeg"]
ui_image_buffer = []
ui_color_32bit = []
ui_overlay = []
ui_empty_lock = []
new_rendering = []
bootloader = []
button = []
touch = []
clippy = []
jpeg = []
disp_i8080_8bit_dw = [] # write pixels directly to peripheral
disp_i8080_16bit_dw = [] # write pixels directly to peripheral
debug = ["ui_debug"]
sbu = []
haptic = []
sd_card = []
rgb_led = []
backlight = []
usb = []
optiga = []
translations = ["crypto"]
test = [
    "backlight",
    "button",
    "cc",
    "crypto",
    "dma2d",
    "debug",
    "glob",
    "micropython",
    "new_rendering",
    "optiga",
    "protobuf",
    "touch",
    "translations",
    "ui",
    "ui_jpeg_decoder",
    "ui_blurring",
    "ui_image_buffer",
    "ui_overlay",
    "ui_empty_lock",
    "universal_fw",
]
universal_fw = []

[lib]
crate-type = ["staticlib"]

[profile.dev]
panic = "abort"
split-debuginfo = "off"
debug = 2

[profile.release]
panic = "abort"
opt-level = "z"
lto = true
codegen-units = 1
split-debuginfo = "off"
debug = 2

[profile.release.package.trezor-tjpgdec]
opt-level = 3

[profile.test]
split-debuginfo = "off"
debug = 2

[dependencies]
qrcodegen = { version = "1.8.0", path = "../../vendor/QR-Code-generator/rust-no-heap" }
spin = { version = "0.9.8", features = ["rwlock"], default-features = false }
trezor-tjpgdec = { version = "0.1.0", path = "../../../rust/trezor-tjpgdec" }
ufmt = "0.2.0"
zeroize = { version = "1.7.0", default-features = false, optional = true }

# Runtime dependencies

[dependencies.cty]
version = "0.2.2"

[dependencies.heapless]
version = "0.8.0"
features = ["ufmt"]
default_features = false

[dependencies.num-traits]
version = "0.2.18"
default_features = false
features = ["libm"]

[dependencies.num-derive]
version = "0.3.3"

[dependencies.static-alloc]
version = "0.2.4"

[dependencies.without-alloc]
version = "0.2.2"

[dependencies.unsize]
version = "1.1.0"

[dependencies.pareen]
version = "0.3.3"
path = "../../../rust/pareen"
default-features = false
features = ["libm", "easer"]

[dependencies.easer]
version = "0.3.0"
default-features = false
features = ["libm"]


# Build dependencies

[build-dependencies.bindgen]
version = "0.62.0"
default_features = false
features = ["runtime"]

# Build dependencies used for linking the test binary

[build-dependencies.cc]
optional = true
version = "1.0.69"

[build-dependencies.glob]
optional = true
version = "0.3.0"

[dev-dependencies]
serde_json = "1.0.96"
