Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
169 lines (147 loc) · 4.75 KB
/
Copy pathCargo.toml
File metadata and controls
169 lines (147 loc) · 4.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
[package]
name = "lv_bevy_ecs"
version = "0.12.0"
edition = "2024"
description = "Safe Rust bindings to the LVGL graphics library using Bevy's ECS framework"
readme = "README.md"
homepage = "https://github.com/SakiiCode/lv_bevy_ecs"
repository = "https://github.com/SakiiCode/lv_bevy_ecs"
license = "MIT"
keywords = ["bevy", "ecs", "embedded", "graphics", "lvgl"]
categories = ["api-bindings", "embedded", "graphics", "gui", "no-std"]
[package.metadata.docs.rs]
features = ["use-vendored-config", "lvgl-alloc", "demos"]
[lib]
name = "lv_bevy_ecs"
path = "src/lib.rs"
[[example]]
name = "no_ecs"
[[example]]
name = "defmt"
required-features = ["defmt"]
[[example]]
name = "widgets_demo"
required-features = ["demos"]
[dependencies]
bevy_ecs = { version = "0.19.0", default-features = false, optional = true }
constptr = { version = "0.3.1", default-features = false }
ctor = { version = "1.0.0", default-features = false, features = ["proc_macro"], optional = true }
defmt = { version = "1.0.1", optional = true }
embedded-graphics = { version = "0.8.1" }
lightvgl-sys = {
path = "../lightvgl-sys",
version = "~9.5.5",
default-features = false,
features = [
"library",
]
}
log = { version = "0.4.28" }
thiserror = { version = "2.0.18", default-features = false }
[dev-dependencies]
defmt-stdout = "0.1.2"
embedded-graphics-simulator = { git = "https://github.com/embedded-graphics/simulator.git", rev = "cb6825e4a2460dcc0c7c7600fc27a27ea96645ac" }
macro_rules_attribute = "0.2.2"
memory-stats = { git = "https://github.com/SakiiCode/memory-stats.git", rev = "44f28e023dfcd89969e1f1ad2325e77fce1ccabb" }
share-rc = "0.1.0"
simple_logger = "5.1.0"
smol = "2.0.2"
smol-macros = "0.1.1"
static_cell = "2.1.1"
[build-dependencies]
lightvgl-sys = {
path = "../lightvgl-sys",
version = "~9.5.5",
default-features = false,
features = [
"raw-bindings",
]
}
lv_codegen = { path = "lv_codegen", version = "0.6.0" }
prettyplease = "0.2.37"
proc-macro2 = "1.0.95"
quote = "1.0.40"
syn = { version = "2.0.111", default-features = false, features = ["parsing"] }
[features]
default = ["ecs"]
# Use critical-section instead of spin
critical-section = ["bevy_ecs?/critical-section"]
# Automatically call lv_init() at startup
ctor = ["dep:ctor"]
# Use defmt instead of log
defmt = ["dep:defmt"]
# Include LVGL demos (requires LV_BUILD_DEMOS)
demos = ["lightvgl-sys/demos"]
# Set LVGL allocator as Rust global allocator
lvgl-alloc = ["defmt?/alloc"]
# Enable functions that should not be used in the ECS environment
ecs = ["dep:bevy_ecs", "lv_codegen/ecs"]
# Use Rust allocator as LVGL allocator (requires LV_USE_STDLIB_MALLOC = CUSTOM)
rust-alloc = ["defmt?/alloc"]
# Enable serde support
serde = ["bevy_ecs/serialize"]
# Needed for the docs-rs generator
use-vendored-config = ["lightvgl-sys/use-vendored-config"]
[lints.clippy]
pedantic = { level = "warn", priority = -1 }
restriction = { level = "warn", priority = -1 }
# Pedantic lints
borrow_as_ptr = "allow"
doc_markdown = "allow" # TODO check this later
if_not_else = "allow"
items_after_statements = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow" # TODO check this later
must_use_candidate = "allow"
semicolon_if_nothing_returned = "allow"
wildcard_imports = "allow"
# Restriction lints
absolute_paths = "allow"
allow_attributes_without_reason = "allow"
arbitrary_source_item_ordering = "allow"
blanket_clippy_restriction_lints = "allow"
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
clone_on_ref_ptr = "allow"
default_numeric_fallback = "allow"
exhaustive_enums = "allow"
exhaustive_structs = "allow"
expect_used = "allow"
implicit_return = "allow"
inline-trait-bounds = "allow"
integer_division = "allow"
integer_division_remainder_used = "allow"
mem_forget = "allow"
min_ident_chars = "allow"
missing_assert_message = "allow"
missing_docs_in_private_items = "allow"
missing_trait_methods = "allow"
module_name_repetitions = "allow"
multiple_unsafe_ops_per_block = "allow"
pattern_type_mismatch = "allow"
pub_use = "allow"
pub_with_shorthand = "allow"
question_mark_used = "allow"
semicolon_outside_block = "allow"
shadow_reuse = "allow"
shadow_unrelated = "allow"
single_call_fn = "allow"
single_char_lifetime_names = "allow"
undocumented_unsafe_blocks = "allow"
unreachable = "allow"
unreadable_literal = "allow"
unseparated_literal_suffix = "allow"
unused_trait_names = "allow"
wildcard_enum_match_arm = "allow"
# Useful in the restriction group
arithmetic_side_effects = "allow" # TODO check this later
as_conversions = "allow" # TODO check this later
doc_paragraphs_missing_punctuation = "allow" # TODO check this later
exit = "warn"
missing_inline_in_public_items = "allow" # Done
unneeded_field_pattern = "warn"
unwrap_used = "allow" # TODO check this later
[profile.dev]
opt-level = "z"
lto = "fat"
codegen-units = 1