Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
403 lines (393 loc) · 12.1 KB
/
Copy pathCargo.toml
File metadata and controls
403 lines (393 loc) · 12.1 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
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
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
workspace.members = [
# === app ===
"apps/browser",
"apps/terminal",
"apps/wm",
"apps/wm-all",
"apps/wm-dyn",
"apps/wm-android",
"apps/wm-android/launch",
"apps/wm-dyn/engine",
"apps/aichat",
"apps/finance",
"apps/sheets",
"apps/photos",
"apps/clock",
"apps/weather",
"apps/mail",
"apps/notes",
"apps/calendar",
"apps/reminders",
"apps/calculator",
"libs/wm_theme",
"libs/civil_time",
"libs/wm_api",
"libs/app_module",
"apps/task",
"apps/image",
"apps/video",
"apps/pdf",
"apps/files",
"libs/diskmap",
"libs/workspace",
"libs/code_arch",
"libs/code_language",
"libs/search",
"libs/tar",
"libs/lz4",
"libs/rmeta",
"apps/route",
"libs/flowgraph",
"apps/ai-hub",
"apps/mixer",
"apps/storybook",
# The tiled-RTS map generator, shared by the importer and the sandbox.
"libs/rtsmap",
"libs/texcomp",
"libs/ai/hub_ui",
"libs/ai/services",
# The AI stack: loader (disk), cuda/metal (kernel and residency stores),
# job (the one cross-model contract), llm and models/* (per-family model
# crates), the generate hub and the live pipe.
"libs/ai/loader",
"libs/ai/cuda",
"libs/ai/metal",
"libs/ai/job",
"libs/ai/llm",
"libs/ai/models/*",
"libs/ai/hub",
"libs/ai/livepipe",
# Constructive solid geometry.
"libs/csg/csg",
"libs/csg/csg_boolean",
"libs/csg/csg_exact",
"libs/csg/csg_math",
"libs/csg/csg_mesh",
"libs/csg/csg_primitives",
"libs/csg/csg_sdf",
"libs/render",
"libs/raytrace",
"libs/fab",
"libs/fab_tour",
"apps/fab/loaders/gltf",
"libs/scene",
"libs/soft_body",
"libs/show_control",
"libs/bounded_http",
# zero-dependency shared primitives (SHA-256, reuse-address UDP bind)
"libs/core_util",
"libs/strict_json",
"libs/loader_bundle",
# === remesh (FaithC port) / xatlas (jpcy port) ===
"libs/remesh",
"libs/xatlas",
# Editable polygon topology and worker-owned model documents.
"libs/mesh_edit",
"libs/model",
# === examples ===
"examples/teamtalk",
"examples/automate",
"examples/map",
"examples/splash",
"examples/slides",
"examples/isolate",
"examples/uizoo",
"examples/video_player",
"examples/video_codec_test",
"examples/charts",
"examples/datagrid",
"examples/todo",
"examples/portallist_hit",
"examples/modal_footprint",
"examples/vector",
"examples/aichat",
"examples/pdf",
"examples/shader",
"examples/raytrace",
"examples/text_input",
"examples/text_atlas_stress",
"examples/text_selection",
"examples/text_center",
"examples/counter",
"examples/browser",
"examples/camera",
"examples/windows_blur",
"examples/floating_panel",
"examples/glass",
"examples/skeuomorph",
"examples/bugfix",
"examples/move_after_draw",
"examples/xr",
"examples/splat_bench",
"examples/cad",
"examples/box3d",
"examples/hello_world",
"examples/render_to_texture",
# === digital-fabrication product ===
"apps/fab",
"apps/fabric",
"libs/fabric/measure",
"libs/fabric/draft",
# === xr app ===
"xr",
# === director ===
"apps/director",
# === own SQLite-format database engine (P0 reader, sqlq CLI) ===
"libs/sqlite_query",
# === headless music score engine ===
"libs/score",
"libs/score_layout",
"libs/score_play",
"libs/score_render",
"libs/score_view",
"libs/score_view/tests/embed_app",
"libs/score_import",
"libs/score_pdf",
"libs/score_ui",
"apps/score",
"libs/midi_file",
"libs/soundfont",
"libs/piano_model",
"libs/drumkit",
"libs/drumkit_phys",
"libs/musicxml",
# === own MP3 / Ogg Vorbis decoders ===
"libs/audio_decode",
# === own Ogg Vorbis encoder (stem side-channels) ===
"libs/audio_encode",
"libs/teamtalk",
# === pictures of audio (spectrogram, wave strip, composite) ===
"libs/audio_picture",
# === per-application audio tap, mixer input for a host equalizer ===
"libs/audio_route",
# === mkfl motion payload + classical optical flow + all-intra re-encode
# (shared by the enhance backend and the VJ's flow-warp import) ===
"libs/video_flow",
# === realtime frame tweening: the classical GPU optical-flow pass
# chain, the RIFE producer behind the same warp, and the mode set
# (extracted from the VJ, which is still its reference user) ===
"libs/frametween",
# === archive.org search + download content input (VJ / asset-ui) ===
"libs/archive_org",
# === image tile wall: HEVC tape atlases + baker CLI + TileGrid widget
# (the engine extracted from the Source Library picture wall) ===
"libs/image_tiles",
"examples/image_tiles",
# === mp4 sample index for range-streaming playback ===
"libs/mp4_index",
# === necessary tools ===
"platform/video",
"tools/cargo_makepad",
"tools/makepad_builder",
"libs/win_resource",
# === OSM PBF -> tile archive + nav artifact bake passes (CLI + in-app) ===
"libs/map_build",
"tools/map_tiles",
"tools/map_bake",
"tools/remote",
"tools/agents",
"tools/ci",
"libs/system_speech",
# Send feedback: caption icon + panel (Amp, Scope)
"widgets/feedback",
# === tests ===
"platform/script/test",
# === makepad-widgets: the core and its family crates (widgets/ is the
# front, a member through its dependents) ===
"widgets/core",
"widgets/families/tweaker",
"widgets/families/data",
"widgets/families/rich_text",
"widgets/families/menus",
"widgets/families/extras",
"widgets/families/maps",
"widgets/families/pdf",
"widgets/families/voice",
"widgets/families/cef",
"widgets/families/ai",
# === private app repositories ===
# Every app directory with a `src/`: the public apps above, and a private
# app repository cloned into apps/<name> whose root Cargo.toml is a
# package (Scope, Source Library) or a members package (Stage) naming its
# crates as path dependencies, which makes them members too. Its crates then compile in this workspace and share its
# target/, profiles and patches. Cargo fails on a member path that does
# not exist and on a glob that matches nothing; this glob always matches
# the public apps, so a tree without the private repositories loads as
# before. Directories without a `src/` (local data) are not matched.
"apps/*/src/..",
]
workspace.exclude = [
# Private app repositories cloned into apps/<name> are members through
# apps/*/src/.. above: Scope (its deps/* come with it as path
# dependencies), Source Library, and Stage (a members package at its
# root).
# Private Arcade frontend (apps/sandbox) keeps its own workspace for now:
# its libs/* reuse the package names of Stage's libs/game/* crates
# (makepad-game-sim, -math, ...), which one workspace cannot hold twice.
"apps/sandbox",
# Stage's donors are preserved sources, not built.
"apps/stage/donors",
"libs/terminal_core",
"libs/diffusion",
"widgets/test",
"libs/stitch",
"libs/wasm_bridge/test",
# vendored third-party libs (tests require external dev-deps)
"libs/ab_glyph_rasterizer",
"libs/i_float",
"libs/i_key_sort",
"libs/i_overlay",
"libs/i_shape",
"libs/i_tree",
"libs/adler2",
"libs/bitflags",
"libs/bytemuck",
"libs/byteorder",
"libs/cfg-if",
"libs/crc32fast",
"libs/flate2",
"libs/fxhash",
"libs/jpeg-encoder",
"libs/memchr",
"libs/pulldown-cmark",
"libs/rustybuzz",
"libs/sdfer",
"libs/simd-adler32",
"libs/smallvec",
"libs/ttf-parser",
"libs/unicase",
"libs/unicode/unicode-bidi",
"libs/unicode/unicode-bidi-mirroring",
"libs/unicode/unicode-ccc",
"libs/unicode/unicode-linebreak",
"libs/unicode/unicode-properties",
"libs/unicode/unicode-script",
"libs/unicode/unicode-segmentation",
# vendored image libs (doctests reference original crate names)
"libs/byteorder-lite",
"libs/webp",
"libs/zune/zune-bmp",
"libs/zune/zune-core",
"libs/zune/zune-inflate",
"libs/zune/zune-jpeg",
"libs/zune/zune-png",
"libs/zune/zune-qoi",
# vendored Vulkan crates (patched crates.io crates; tests/benches pull
# upstream-only dev-deps or missing packaged assets)
"libs/vulkan/arrayvec",
"libs/vulkan/ash",
"libs/vulkan/bit-set",
"libs/vulkan/bit-vec",
"libs/vulkan/bitflags",
"libs/vulkan/cfg-if",
"libs/vulkan/cfg_aliases",
"libs/vulkan/crunchy",
"libs/vulkan/equivalent",
"libs/vulkan/foldhash",
"libs/vulkan/half",
"libs/vulkan/hashbrown",
"libs/vulkan/hexf-parse",
"libs/vulkan/indexmap",
"libs/vulkan/libloading",
"libs/vulkan/log",
"libs/vulkan/makepad-half",
"libs/vulkan/naga",
"libs/vulkan/num-traits",
"libs/vulkan/once_cell",
"libs/vulkan/rustc-hash",
"libs/vulkan/spirv",
"libs/vulkan/thiserror",
"libs/vulkan/thiserror-impl",
"libs/vulkan/unicode-ident",
"libs/vulkan/zerocopy",
"libs/rapier",
# platform-specific libs
"libs/windows/windows-collections",
"libs/windows/windows-core",
"libs/windows/windows-future",
"libs/windows/windows-link",
"libs/windows/windows-result",
"libs/windows/windows-rs",
"libs/windows/windows-strings",
"libs/linux/wayland-backend",
"libs/linux/wayland-client",
"libs/linux/wayland-egl",
"libs/linux/wayland-protocols",
"libs/linux/wayland-sys",
"tools/windows_strip",
"tools/file_router",
"tools/wasm_strip",
]
workspace.resolver = "2"
#debug = true
[patch.crates-io]
bitflags = { path = "libs/bitflags" }
smallvec = { path = "libs/smallvec" }
windows-link = { path = "libs/windows/windows-link" }
# Build profiles, for every member, the private apps' crates included.
#
# dev: line tables are enough for backtraces and printf debugging (nobody
# attaches a debugger); full debuginfo cost a quarter of a clean dev build
# and doubled the Windows PDB and link time.
[profile.dev]
debug = "line-tables-only"
# release: agents build release all the time, so an edited crate recompiles
# incrementally (widgets edit 30 s -> 11 s on Mac, 45 s -> 16 s on Windows;
# a clean build is ~6% slower). cargo-makepad's packaging commands (android,
# apple, wasm, ohos, desktop build) set CARGO_PROFILE_RELEASE_INCREMENTAL=false,
# so shipped binaries are still built whole. lto = "off" drops the default
# thin-local LTO pass (release clean 63 s -> 52 s for amp, edit loop faster).
[profile.release]
incremental = true
lto = "off"
[profile.small]
inherits = "release"
incremental = false
#debug = true
opt-level = 'z' # Optimize for size
lto = true # Enable link-time optimization
codegen-units = 1 # Reduce number of codegen units to increase optimizations
panic = 'abort' # Abort on panic
strip = true
[profile.profile]
inherits = "release"
debug = true
[profile.test.package.makepad-stitch]
opt-level = 1
# stitch's interpreter needs its handlers' calls to become tail calls; built
# incrementally (release has incremental = true) they are not, and the script
# math AOT overflows the stack.
[profile.release.package.makepad-stitch]
incremental = false
#[profile.dev.package.makepad-live-tokenizer]
#opt-level = 3
#[profile.dev.package.makepad-live-compiler]
#opt-level = 3
#[profile.dev.package.makepad-shader-compiler]
#opt-level = 3
#[profile.dev.package.makepad-platform]
#opt-level = 3
#[profile.dev.package.makepad-draw]
#opt-level = 3
#[profile.dev.package.makepad-vector]
#opt-level = 3
#[profile.dev.package.rustybuzz]
#opt-level = 3
#[profile.dev.package.bitflags]
#opt-level = 3
#[profile.dev.package.bytemuck]
#opt-level = 3
#[profile.dev.package.smallvec]
#opt-level = 3
#[profile.dev.package.unicode-bidi-mirroring]
#opt-level = 3
#[profile.dev.package.unicode-ccc]
#opt-level = 3
#[profile.dev.package.unicode-properties]
#opt-level = 3
#[profile.dev.package.unicode-script]
#opt-level = 3
#[profile.dev.package.unicode-bidi]
#opt-level = 3
#[profile.dev.package.ttf-parser]
#opt-level = 3