-
Notifications
You must be signed in to change notification settings - Fork 106
/
Cargo.toml
105 lines (79 loc) · 2.23 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
[workspace]
members = [
"zebrad",
"zebra-chain",
"zebra-network",
"zebra-state",
"zebra-script",
"zebra-consensus",
"zebra-rpc",
"zebra-node-services",
"zebra-test",
"zebra-utils",
"zebra-scan",
"zebra-grpc",
"tower-batch-control",
"tower-fallback",
]
# Use the edition 2021 dependency resolver in the workspace, to match the crates
resolver = "2"
# `cargo release` settings
[workspace.dependencies]
incrementalmerkletree = { version = "0.7.0", features = ["legacy-api"] }
orchard = "0.10.0"
sapling-crypto = "0.3.0"
zcash_address = "0.6.0"
zcash_client_backend = "0.14.0"
zcash_encoding = "0.2.1"
zcash_history = "0.4.0"
zcash_keys = "0.4.0"
zcash_primitives = "0.19.0"
zcash_proofs = "0.19.0"
zcash_protocol = "0.4.0"
[workspace.metadata.release]
# We always do releases from the main branch
allow-branch = ["main"]
# Compilation settings
[profile.dev]
panic = "abort"
# Speed up tests by optimizing performance-critical crates
# Cryptographic crates
[profile.dev.package.blake2b_simd]
opt-level = 3
[profile.dev.package.ff]
opt-level = 3
[profile.dev.package.group]
opt-level = 3
[profile.dev.package.pasta_curves]
opt-level = 3
[profile.dev.package.halo2_proofs]
opt-level = 3
[profile.dev.package.halo2_gadgets]
opt-level = 3
[profile.dev.package.bls12_381]
opt-level = 3
[profile.dev.package.byteorder]
opt-level = 3
[profile.dev.package.equihash]
opt-level = 3
[profile.dev.package.zcash_proofs]
opt-level = 3
[profile.dev.package.ring]
opt-level = 3
[profile.dev.package.spin]
opt-level = 3
[profile.dev.package.untrusted]
opt-level = 3
[profile.release]
panic = "abort"
# Speed up release builds and sync tests using link-time optimization.
# Some of Zebra's code is CPU-intensive, and needs extra optimizations for peak performance.
#
# TODO:
# - add "-Clinker-plugin-lto" in .cargo/config.toml to speed up release builds
# - add "-Clinker=clang -Clink-arg=-fuse-ld=lld" in .cargo/config.toml
# - also use LTO on C/C++ code:
# - use clang to compile all C/C++ code
# - add "-flto=thin" to all C/C++ code builds
# - see https://doc.rust-lang.org/rustc/linker-plugin-lto.html#cc-code-as-a-dependency-in-rust
lto = "thin"