1[workspace]
2members = [
3    "build_scripts",
4    "cmd_runner",
5    "derive_fuzztest",
6    "derive_fuzztest/fuzz",
7    "derive_fuzztest_macro",
8    "handle_map",
9    "lock_adapter",
10    "pourover",
11    "pourover_macro",
12]
13default-members = ["build_scripts"]
14resolver = "2"
15
16[workspace.lints.rust]
17missing_docs = "deny"
18trivial_casts = "deny"
19trivial_numeric_casts = "deny"
20unsafe_code = "deny"
21unsafe_op_in_unsafe_fn = "deny"
22unused_extern_crates = "deny"
23unused_import_braces = "deny"
24unused_results = "deny"
25
26[workspace.lints.clippy]
27expect_used = "deny"
28indexing_slicing = "deny"
29panic = "deny"
30unwrap_used = "deny"
31
32[workspace.dependencies]
33# local crates
34cmd_runner = { path = "cmd_runner" }
35derive_fuzztest = { path = "derive_fuzztest" }
36derive_fuzztest_macro = { path = "derive_fuzztest_macro" }
37lock_adapter = { path = "lock_adapter" }
38handle_map = { path = "handle_map" }
39pourover = { path = "pourover" }
40pourover_macro = { path = "pourover_macro" }
41
42# from crates.io
43anyhow = "1.0.75"
44arbitrary = "1.3.2"
45clap = { version = "4.4.11", features = ["derive"] }
46criterion = { version = "0.5.1", features = ["html_reports"] }
47jni = "0.21.1"
48lazy_static = { version = "1.4.0", features = ["spin_no_std"] }
49libfuzzer-sys = "0.4.7"
50nom = { version = "7.1.3", default-features = false }
51pretty_assertions = "1.4.0"
52prettyplease = "0.2.16"
53proc-macro2 = "1.0"
54proptest = "1.4.0"
55proptest-arbitrary-interop = { git = "https://github.com/brson/proptest-arbitrary-interop.git", branch = "incorrect-format" }
56quickcheck = "1.0.3"
57quote = "1.0"
58spin = { version = "0.9.8", features = ["once", "lock_api", "rwlock"] }
59syn = { version = "2.0", features = ["full"] }
60xshell = "0.2.6"
61
62[workspace.package]
63version = "0.1.0"
64edition = "2021"
65publish = false
66
67[profile.test]
68# speed up test execution
69opt-level = 3
70
71[profile.bench]
72# Since xts, ldt, etc are in separate crates, use LTO to allow cross-crate inlining.
73# fat vs thin: thin compiles a lot faster, and doesn't seem any slower.
74lto = "thin"
75
76# build profile optimized for size
77[profile.release-min-size]
78inherits = "release"
79panic = "abort"
80codegen-units = 1
81lto = true
82# z optimizes for size
83opt-level = "z"
84strip = true
85