-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
78 lines (66 loc) · 2.37 KB
/
Copy pathCargo.toml
File metadata and controls
78 lines (66 loc) · 2.37 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
[package]
name = "viture-v2"
version = "0.1.0"
edition = "2021"
description = "Dependency-free driver for VITURE Gen2 XR glasses (protocol V2), no vendor SDK"
license = "MIT"
[lib]
crate-type = ["rlib", "cdylib"]
[features]
default = []
# Panorama-Geometrie und Kameramathematik fuer den 360-Grad-Renderer.
# Optional, damit CLI und Treiber-Hot-Path abhaengigkeitsfrei bleiben.
render = ["glam", "miniz_oxide"]
# The simulated device. On in tests regardless; the feature exposes it to
# examples and benchmarks too.
sim = []
[dependencies]
# Im Hot Path des Treibers bewusst keine. Die Render-Mathematik dagegen steht
# auf glam: NEON-beschleunigte 4x4-Matrizen und durchgetestete Quaternion- und
# Projektionsroutinen sind nichts, was man selbst nochmal schreiben sollte.
glam = { version = "0.33", optional = true }
# Inflate for mesh projections, which the format stores deflated. Pure Rust,
# so cross-compiling stays a one-liner.
miniz_oxide = { version = "0.9", optional = true }
# Integration tests are compiled whatever the feature set, so the ones that
# need a feature have to say so or a --no-default-features build fails on
# imports that are not there.
[[test]]
name = "simulated_glasses"
required-features = ["sim"]
[[test]]
name = "simulated_tracker"
required-features = ["sim"]
[[test]]
name = "simulated_view"
required-features = ["render"]
[[test]]
name = "chaos"
required-features = ["sim"]
[[test]]
name = "simulation_matches_hardware"
required-features = ["sim"]
[[test]]
name = "fixture_view"
required-features = ["render"]
[dev-dependencies]
# Reading the shared scenario fixture. A development dependency only: it is not
# part of anything that ships, and the guard on the default build's dependency
# graph looks at normal edges.
serde_json = "1"
[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
# The driver aborts rather than unwinding: it is a shared library loaded into
# someone else's process, and unwinding across that boundary is undefined.
panic = "abort"
# Optimised, but unwinding, so tests can run against the code that ships.
#
# `cargo test --release` cannot: a test harness has to unwind to report a
# failure, and it would be linking dependencies built to abort. Dropping to a
# debug build instead would leave the optimiser untested, and the maths here is
# the kind that opt-level and lto can change.
[profile.release-test]
inherits = "release"
panic = "unwind"