Skip to content

Instantly share code, notes, and snippets.

@riskable
Created February 26, 2024 20:27
Show Gist options
  • Save riskable/6cd65856eb87d2d3b2788433b441d25a to your computer and use it in GitHub Desktop.
Save riskable/6cd65856eb87d2d3b2788433b441d25a to your computer and use it in GitHub Desktop.
keystoked Cargo.toml
[package]
name = "keystoked"
version = "0.1.0"
edition = "2021"
[features]
default = []
defmt = []
encoders = ["keystoked-config/encoders", "keystoked-builder/encoders"]
lighting = ["keystoked-config/lighting", "keystoked-builder/lighting"]
display = ["keystoked-config/display", "keystoked-builder/display"]
infrared = ["keystoked-config/infrared", "keystoked-builder/infrared"]
[[bin]]
name = "ahek95"
required-features = ["encoders", "lighting", "infrared"]
[[bin]]
name = "sbn"
required-features = ["encoders", "lighting", "infrared"]
# features = ["encoders", "lighting", "infrared"]
[[bin]]
name = "octakeys_three"
required-features = []
# The resolver is necessary because there's a bug in Cargo's resolver where if a
# single dev-dependency needs std it'll try to build *all* packages of
# the same name (serde) with std too. Using the v2 resolver fixes that bug:
[workspace]
resolver = "2"
members = [".", "xtask", "keystoked-config", "keystoked-builder"]
# default-run = "sbn"
# default-build = "sbn"
# exclude = ["bin/sbn"]
[dependencies]
keystoked-config = { path = "keystoked-config", version = "0.1" }
# TODO: Put all the hardware-specific stuff into src/bin/<board> Cargo.toml files
# cortex-m = { version = "0.7", features = ["critical-section-single-core"] }
cortex-m = { version = "0.7", features = [] }
# cortex-m-rt = { version = "0.7", features = ["device"], optional = true }
cortex-m-rt = "0.7"
cortex-m-rtic = "1.0"
critical-section = "1.1"
# critical-section = { version = "1.1", features = ["restore-state-u8"] }
# alloc-cortex-m = "0.4"
fugit = "0.3" # Needed for monotonic RTIC stuff
usb-device = "0.2"
# usbd-serial = "0.1"
# usbd-hid = { git = "https://github.com/twitchyliquid64/usbd-hid.git", branch = "master" }
usbd-hid = { version = "0.6", features = ["defmt"] }
# usbd-human-interface-device = "0.3" # TEMP
# keyberon = { git = "https://github.com/TeXitoi/keyberon" }
keyberon = { git = "https://github.com/riskable/keyberon", version = "0.2" }
# keyberon = { path = "/home/riskable/workspace/rust/embedded/keyberon" }
# panic-halt= "0.2"
defmt = "0.3"
defmt-rtt = "0.4.0"
# derive_more = "0.99"
# panic-rtt-target = { version = "0.1", features = ["cortex-m"] }
panic-probe = { version = "0.3", features = ["print-defmt"] }
# panic-probe = { version = "0.3", features = ["print-rtt"] }
embedded-hal = { version = "0.2", features = ["unproven"] }
rp2040-hal = { version = "0.9", features = ["critical-section-impl", "rt", "rtic-monotonic", "rom-v2-intrinsics", "defmt", "rom-func-cache"] }
rp2040-boot2 = { version = "0.3" }
rp2040-pac = { version = "0.6", features = ["rt"] }
rp2040-monotonic = "1.2"
micromath = "2.0"
# TODO: Put this behind a feature or make it board-specific:
smart-leds = "0.3"
ws2812-pio = "0.7"
smart-leds-trait = "0.2"
# ws2812-pio = { git = "https://github.com/ithinuel/ws2812-pio-rs", version = "0.2" }
analog-multiplexer = "1.0"
rtt-target = { version = "0.4" }
serde = { version = "1.0", default-features = false, features = ["derive"] }
# infrared = { git = "https://github.com/jkristell/infrared.git", branch = "master", features = [
# "defmt",
# "fugit",
# ] }
# infrared = { path = "/home/riskable/workspace/rust/embedded/infrared", features = [
# "defmt",
# "fugit",
# ] }
infrared = { version = "0.14", features = ["defmt", "embedded", "fugit"] }
# num-format = { version = "0.4", default-features = false }
# numtoa = "0.2"
# TODO: Put hardware-specific things (like display stuff) into board-specific Cargo.toml files
# epd-waveshare = { version = "0.5", features = ["graphics"] }
# epd-waveshare = { path = "/home/riskable/workspace/rust/embedded/epd-waveshare", version = "0.5", features = [
# "graphics",
# ] }
embedded-graphics = "0.7"
# embedded-graphics = { git = "https://github.com/embedded-graphics/embedded-graphics.git", branch = "master" }
embedded-text = "0.7"
tinytga = "0.5"
# Provides slightly more efficient delay_ms() and delay_us()
asm-delay = "1.0"
heapless = { version = "0.8", features = ["serde"] }
siphasher = "1.0" # Needed in order to use rp2040-tickv
smart-leds-matrix = "0.1"
# smart-leds-matrix = { path = "/home/riskable/workspace/rust/embedded/smart-leds-matrix", version = "*" }
[dependencies.palette]
version = "0.6"
default-features = false
features = ["libm", "named", "named_from_str", "random"]
# # Can't add this to crates.io until TicKV itself gets added to crates.io:
# [dependencies.rp2040-tickv]
# git = "https://github.com/riskable/rp2040-tickv"
# rev = "839c3f21cb1bfe9d20576528d6efc39810b8b7e3" # As of 20220416
# # Need this until it gets added to crates.io:
# [dependencies.tickv]
# git = "https://github.com/tock/tock.git"
# rev = "f7712a97742d9c9a35e547bfc9e0776869830fe1"
# [features]
# default = ["rt", "boot2"]
# boot2 = ["rp2040-boot2"]
# rt = ["cortex-m-rt","rp2040-hal/rt"]
[build-dependencies]
# NOTE: This may be needed if we ever need to use that add_const_gen! macro again:
# num-format = { version = "0.4", default-features = false }
keystoked-config = { path = "keystoked-config", version = "0.1" }
keystoked-builder = { path = "keystoked-builder", version = "0.1" }
serde = { version = "1.0", features = [
"derive",
] } # Used to serialize/deserialize the toml stuff
toml = "0.8" # All the config stuff is toml
chrono = "0.4" # Used to generate the timestamp that ends up in the USB hardware serial number
[profile.dev]
codegen-units = 1
debug = 2
debug-assertions = true
incremental = false
opt-level = 1
overflow-checks = true
[profile.release]
codegen-units = 1
debug = 2
debug-assertions = false
incremental = false
# NOTE: For rp2040-tickv to work properly the lto setting needs to be either 'thin' or 'fat':
lto = 'thin'
opt-level = "s" # NOTE: 0 and 1 here break rp2040-tickv ('s' and 3 are OK though)
overflow-checks = false
# [profile.release]
# codegen-units = 1
# debug = 2
# debug-assertions = false # <-
# incremental = false
# # NOTE disabled to work around issue rust-lang/rust#90357
# # the bug results in log messages not having location information
# # (the line printed below the log message that contains the file-line location)
# # lto = 'fat'
# opt-level = 3 # <-
# overflow-checks = false # <-
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment