-
Notifications
You must be signed in to change notification settings - Fork 5
/
Cargo.toml
203 lines (153 loc) · 4.62 KB
/
Cargo.toml
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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
[package]
name = "xcp"
version = "0.1.0"
edition = "2021"
resolver = "2"
rust-version = "1.76"
authors = ["Vector Informatik GmbH, RDM"]
description = "XCP for Rust, based on XCPlite"
readme = "README.md"
keywords = ["XCP","Rust","Vector","ASAM","CANape","A2L"]
license = "MIT OR Apache-2.0"
homepage = "https://vector.com"
repository = "https://github.com/vectorgrp/xcp-lite"
categories = ["MC"]
[workspace]
members = [
"xcp_client",
"examples/hello_xcp",
"examples/single_thread_demo",
"examples/multi_thread_demo",
"examples/protobuf_demo",
"examples/point_cloud_demo",
"examples/rayon_demo",
"examples/tokio_demo",
"examples/type_description_demo",
"examples/xcp_idl_generator_demo",
"examples/xcp_daemon"
]
[[example]]
name = "xcp_client"
path = "xcp_client/src/main.rs"
[[example]]
name = "hello_xcp"
path = "examples/hello_xcp/src/main.rs"
[[example]]
name = "xcp_daemon"
path = "examples/xcp_daemon/src/main.rs"
[[example]]
name = "single_thread_demo"
path = "examples/single_thread_demo/src/main.rs"
[[example]]
name = "multi_thread_demo"
path = "examples/multi_thread_demo/src/main.rs"
[[example]]
name = "rayon_demo"
path = "examples/rayon_demo/src/main.rs"
[[example]]
name = "tokio_demo"
path = "examples/tokio_demo/src/main.rs"
[[example]]
name = "point_cloud_demo"
path = "examples/point_cloud_demo/src/main.rs"
[[example]]
name = "scoped_threads"
path = "examples/scoped_threads/src/main.rs"
[[example]]
name = "protobuf_demo"
path = "examples/protobuf_demo/src/main.rs"
[features]
# Feature xcp_server enables the buildin XCP server
xcp_server = []
# Feature load, save and freeze calibration segment to json
serde = ["dep:serde","dep:serde_json"]
# Feature a2l_reader to enable automatic check of the generated A2L file
a2l_reader = ["dep:a2lfile"]
default = ["xcp_server"]
[dependencies]
# Error handling
thiserror = "1.0.64"
# Command line parser
clap = { version = "4.5.9", features = ["derive"] }
# Raw FFI bindings to platform libraries
# For XcpLite
# libc = "0.2.153"
# A macro to generate structures which behave like bitflags
bitflags = "2.6.0"
# Logging
log = "0.4.21"
env_logger = "0.11.3"
# Collects build-information of your Rust crate
# used to generate EPK
# build-info = "0.0.36"
# A macro for declaring lazily evaluated statics
lazy_static = "1.4.0"
# Single assignment cells
once_cell = "1.19.0"
static_cell = "2.1.0"
# More compact and efficient implementations of the standard synchronization primitives
# Used for the mutex in CalSeg::sync()
parking_lot = "0.12.3"
# proc-macro A2L serializer for structs
xcp_type_description = { path = "./xcp_type_description/"}
xcp_type_description_derive = { path = "./xcp_type_description/xcp_type_description_derive/" }
# proc-macro CDR IDL generator for structs
xcp_idl_generator = { path = "./xcp_idl_generator/"}
xcp_idl_generator_derive = { path = "./xcp_idl_generator/xcp_idl_generator_derive/"}
# A generic serialization/deserialization framework
# Used to handle json parameter files (optional)
serde = { version = "1.0", features = ["derive"] , optional = true}
serde_json = { version = "1.0" , optional = true}
# A2L checker
a2lfile = { version="2.2.0", optional = true}
# Unix Only, dependencies required for daemonization
[target.'cfg(unix)'.dependencies]
# Unix Signal Handling
signal-hook = "0.3.17"
# Syslog logging
syslog = "7.0.0"
# Bindings to unix APIs
nix = { version = "0.29.0", features = ["process", "fs"] }
[dev-dependencies]
anyhow = "1.0"
serde = { version = "1.0", features = ["derive"] , optional = false }
serde_json = { version = "1.0" , optional = false}
# XCP test client
bytes = "1.6.0"
byteorder = "1.5.0"
tokio = { version = "1.37.0", features = ["full"] }
a2lfile = { version="2.2.0", optional = false}
xcp_client = { path = "xcp_client" }
# dependencies for point_cloud example
cdr = "0.2.4"
# dependencies for rayon demo example
rayon = "1.10.0"
num = "0.4.3"
image = "0.25.2"
num_cpus = "1.16.0"
# dependencies for protobuf demo example
prost = "0.13.1"
prost-types = "0.13.1"
# benchmarking
criterion = { version = "0.4", features = ["html_reports"] }
[[bench]]
name = "xcp_benchmark"
harness = false
[build-dependencies]
cc = "1.0"
build-info-build = "0.0.36"
# generate interface to XCPlite
bindgen = "0.69.4"
[profile.dev.package."*"]
debug = false
opt-level = 3
[profile.dev]
# panic = 'abort'
# lto = true
debug = true
opt-level = 2
[profile.release]
panic = 'abort'
debug = true
lto = true
opt-level = 3