Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
165 lines (155 loc) · 5.31 KB
/
Copy pathCargo.toml
File metadata and controls
165 lines (155 loc) · 5.31 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
[workspace]
resolver = "2"
members = ["crates/*"]
exclude = ["vendor"]
[workspace.package]
version = "0.1.25"
edition = "2024"
license = "GPL-3.0-or-later"
authors = ["Emircan Sahin"]
repository = "https://github.com/emircan-sahin/gitviber"
[workspace.dependencies]
# One feature set for every crate. Cargo unifies features only among the crates a command builds,
# so each crate asking for its own set built gpui-component and all above it again: 12 builds of
# it sat in target/ at once. The highlighter's grammars (all but SQL, whose cc pin conflicts).
gpui-kit = { version = "=0.8.0", features = [
"tree-sitter",
"tree-sitter-astro",
"tree-sitter-bash",
"tree-sitter-c",
"tree-sitter-cmake",
"tree-sitter-cpp",
"tree-sitter-csharp",
"tree-sitter-css",
"tree-sitter-diff",
"tree-sitter-ejs",
"tree-sitter-elixir",
"tree-sitter-erb",
"tree-sitter-go",
"tree-sitter-graphql",
"tree-sitter-html",
"tree-sitter-java",
"tree-sitter-javascript",
"tree-sitter-jsdoc",
"tree-sitter-kotlin",
"tree-sitter-lua",
"tree-sitter-make",
"tree-sitter-markdown",
"tree-sitter-php",
"tree-sitter-proto",
"tree-sitter-python",
"tree-sitter-ruby",
"tree-sitter-rust",
"tree-sitter-scala",
"tree-sitter-svelte",
"tree-sitter-swift",
"tree-sitter-toml",
"tree-sitter-tsx",
"tree-sitter-typescript",
"tree-sitter-yaml",
"tree-sitter-zig",
] }
# Tests, examples and the off-screen snapshot share this one gpui; any other feature set would be
# another build of the whole stack.
gpui-test = { package = "gpui-pre", version = "=0.3.9", features = ["test-support", "leak-detection"] }
gpui-snapshot-platform = { package = "gpui-pre-platform", version = "=0.3.9", features = ["test-support"] }
# Already in the tree through gpui-kit; pinned to the locked versions.
serde = { version = "=1.0.229", features = ["derive"] }
serde_json = "=1.0.151"
chrono = "=0.4.45"
# Core's events cross to the UI thread over its channel.
futures = "=0.3.34"
# gpui-base with two changes (vendor/gpui-base/PATCH.md): closed markdown documents' shaped text
# was kept in a table swept only every 4096 entries, and the code editor gains blocks between
# lines (review notes).
[patch.crates-io]
gpui-base = { path = "vendor/gpui-base" }
# gpui-component with the old app's control sizes and overlay text (vendor/gpui-component/PATCH.md).
gpui-component = { path = "vendor/gpui-component" }
# gpui's Metal renderer and macOS window, giving GPU memory back: path textures sized to the
# paths, a hidden window's drawables freed, a smaller first color atlas (their PATCH.md).
gpui-pre-apple = { path = "vendor/gpui-pre-apple" }
gpui-pre-macos = { path = "vendor/gpui-pre-macos" }
# Line tables keep file:line in backtraces and panics; full debug info only slows the link.
[profile.dev]
debug = "line-tables-only"
[profile.dev.package."*"]
debug = false
# The vendored crates are path packages, so cargo would build them incrementally like our own
# crates; we don't edit them day to day, and gpui-base's incremental data ran ~400 MB a build variant.
[profile.dev.package.gpui-base]
incremental = false
[profile.dev.package.gpui-component]
incremental = false
[profile.dev.package.gpui-pre-apple]
incremental = false
[profile.dev.package.gpui-pre-macos]
incremental = false
# The hot loops of the terminal and the diff, optimized even in a debug build, so a debug app
# keeps up with Claude Code's output. Built once, like any dependency.
[profile.dev.package.alacritty_terminal]
opt-level = 3
[profile.dev.package.vte]
opt-level = 3
[profile.dev.package.similar]
opt-level = 3
# Release speed with symbols and a far quicker build than release's fat LTO: for measuring
# memory and frame times (Instruments, footprint).
[profile.profiling]
inherits = "release"
lto = "thin"
codegen-units = 16
debug = "line-tables-only"
strip = false
[profile.release]
codegen-units = 1
lto = true
opt-level = 3
strip = true
# Built for size: code that runs seldom and never on a hot path (terminal, diff, code view, lists,
# git): diagrams and math, rare image formats (weezl stays at 3 for GIF), HTML inside markdown,
# HTTPS (network bound; ring's crypto is assembly) and the updater.
[profile.release.package.mermaid-rs-renderer]
opt-level = "s"
[profile.release.package.ratex-font]
opt-level = "s"
[profile.release.package.ratex-font-loader]
opt-level = "s"
[profile.release.package.ratex-layout]
opt-level = "s"
[profile.release.package.ratex-lexer]
opt-level = "s"
[profile.release.package.ratex-parser]
opt-level = "s"
[profile.release.package.ratex-render]
opt-level = "s"
[profile.release.package.ratex-types]
opt-level = "s"
[profile.release.package.ratex-unicode-font]
opt-level = "s"
[profile.release.package.exr]
opt-level = "s"
[profile.release.package.tiff]
opt-level = "s"
[profile.release.package.fax]
opt-level = "s"
[profile.release.package.qoi]
opt-level = "s"
[profile.release.package.html5ever]
opt-level = "s"
[profile.release.package.markup5ever]
opt-level = "s"
[profile.release.package.markup5ever_rcdom]
opt-level = "s"
[profile.release.package.rustls]
opt-level = "s"
[profile.release.package.rustls-webpki]
opt-level = "s"
[profile.release.package.ureq]
opt-level = "s"
[profile.release.package.ureq-proto]
opt-level = "s"
[profile.release.package.http]
opt-level = "s"
[profile.release.package.gitviber-updater]
opt-level = "s"