[workspace] resolver = "2" exclude = [ "crates/nimanyatta", "makepad-native-glue", "makepad-native-glue/makepad", # A nested workspace: `crates/apps/makepad_table/Cargo.toml` carries its # own `[workspace]` table, so Cargo already refuses to absorb it. Naming # it here makes that intentional rather than incidental — without this # line the isolation depends on a table inside someone else's manifest, # and deleting that table would silently pull four crates and a second # makepad checkout into every workspace-wide build. "crates/apps/makepad_table", # Same reasoning as makepad_table: `crates/apps/p2p-intel/Cargo.toml` # carries its own `[workspace]` table, so Cargo already refuses to # absorb it. Naming it here makes the isolation intentional rather than # dependent on a table inside someone else's manifest. "crates/apps/p2p-intel", ] members = [ "crates/apps/valhalla", "crates/apps/valhalla/valhalla-core", "crates/apps/valhalla/valhalla-cost", "crates/apps/valhalla/valhalla-path", "crates/apps/valhalla/valhalla-search", "crates/apps/valhalla/valhalla-match", "crates/apps/valhalla/valhalla-narrative", "crates/apps/valhalla/valhalla-service", "crates/apps/valhalla/valhalla-makepad", "crates/apps/valhalla/valhalla-builder", "crates/apps/valhalla/valhalla-diff", "crates/apps/valhalla/valhalla-elevation", "crates/apps/map", "crates/matrix_client", "crates/pageflipnav", "crates/nigig-core", "crates/nigig-uikit", "crates/apps/nigig-chat", "crates/apps/nigig-feed", "crates/apps/nigig-email", "crates/apps/nigig-sms", "crates/apps/nigig-ai", "crates/apps/nigig-walkie", "crates/apps/nigig-alerts", "crates/apps/nigig-rider", "crates/apps/nigig-delivery", "crates/apps/nigig-garage", "crates/apps/nigig-tow", "crates/apps/nigig-mobility", "crates/apps/nigig-pay", "crates/apps/nigig-insure", "crates/apps/nigig-build", "crates/apps/cad/cad-core", "crates/apps/cad/cad-ui", "crates/apps/nigig-health", "crates/apps/nigig-book", "crates/apps/nigig-property", "crates/apps/nigig-vehicle", "crates/apps/nigig-marikiti", "crates/apps/nigig-shop", "crates/apps/nigig-mpesa", "crates/apps/nigig-traffic", "crates/apps/nigig-pay-ui", "crates/apps/nigig-site", "crates/apps/nigig-site-core", # The server's WebSocket chat protocol crate. It has NO path # dependencies (only optional serde + postcard), so unlike its parent # package it can be a workspace member and be compiled and tested # here. `nimanyatta` itself CANNOT be a member: its optional path deps # `../nigig-lite/crates/common` and `../xitca-web/web` do not exist in # this checkout, and Cargo resolves path dependencies even for # features that are not enabled, so adding it breaks every # workspace-wide command including `cargo metadata`. "nimanyatta/crates/nimanyatta-protocol", "crates/apps/streem", "crates/apps/geohot", "crates/robius-contacts", "crates/robius-notification", "crates/robius-sms", "crates/robius-ussd", "crates/robius-trigger", "crates/robius-fingerprinting", # "crates/apps/theming", # broken: depends on robius-directories "crates/nigig-system-prefs", "crates/nigig-pay-domain", "crates/nigig-pay-storage", "crates/nigig-pay-platform", # "crates/lookpad", # source is not present in this checkout "crates/apps/spreadsheet/spreadsheet-engine", "crates/apps/spreadsheet/spreadsheet-ui", "crates/apps/doc/doc-engine", "crates/apps/doc/doc-ui", "crates/apps/pdf/pdf-cos", "crates/apps/pdf/pdf-document", "crates/apps/pdf/pdf-graphics", "crates/apps/pdf/pdf-makepad", "crates/apps/nigig-ocr", ] [profile.release] opt-level = "z" # PERF-OPS (PLAN_PERF_OPTIMIZATION.md Phase 1): thin LTO across the # workspace is a near-free codegen win for the app crates without the # link-time cost of fat LTO. Fat LTO remains available via `small`. lto = "thin" # codegen-units = 1 strip = true # panic = "abort" # PERF-OPS Phase 1: the two engine crates are the CPU hot path; they get # opt-level 3 (size builds make aggregates thumb-stub by default) and full # codegen-units=1 inlining while the rest of the workspace stays size-tuned. # lto/panic are not expressible per-package; thin LTO above carries them. [profile.release.package.spreadsheet-engine] opt-level = 3 codegen-units = 1 [profile.release.package.doc-engine] opt-level = 3 codegen-units = 1 [profile.small] inherits = "release" #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 # Single source of truth for the makepad fork. Bump the rev here and every # crate that declares these deps via `workspace = true` adopts it at once. [workspace.dependencies] makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "a3d8f521a9aaa5052415e7d1de6b329a4a6eba73" } makepad-test = { git = "https://gitdab.com/andodeki/makepad", rev = "a3d8f521a9aaa5052415e7d1de6b329a4a6eba73" } makepad-platform = { git = "https://gitdab.com/andodeki/makepad", rev = "a3d8f521a9aaa5052415e7d1de6b329a4a6eba73" } makepad-draw = { git = "https://gitdab.com/andodeki/makepad", rev = "a3d8f521a9aaa5052415e7d1de6b329a4a6eba73" } makepad-derive-widget = { git = "https://gitdab.com/andodeki/makepad", rev = "a3d8f521a9aaa5052415e7d1de6b329a4a6eba73" } makepad-fast-inflate = { git = "https://gitdab.com/andodeki/makepad", rev = "a3d8f521a9aaa5052415e7d1de6b329a4a6eba73" } makepad-mbtile-reader = { git = "https://gitdab.com/andodeki/makepad", rev = "a3d8f521a9aaa5052415e7d1de6b329a4a6eba73" } makepad-script = { git = "https://gitdab.com/andodeki/makepad", rev = "a3d8f521a9aaa5052415e7d1de6b329a4a6eba73" } makepad-code-editor = { git = "https://gitdab.com/andodeki/makepad", rev = "a3d8f521a9aaa5052415e7d1de6b329a4a6eba73" } makepad-xr = { git = "https://gitdab.com/andodeki/makepad", rev = "a3d8f521a9aaa5052415e7d1de6b329a4a6eba73" } makepad-ai-hub = { git = "https://gitdab.com/andodeki/makepad", rev = "a3d8f521a9aaa5052415e7d1de6b329a4a6eba73", default-features = false } makepad-base64 = { git = "https://gitdab.com/andodeki/makepad", rev = "a3d8f521a9aaa5052415e7d1de6b329a4a6eba73" } # makepad-game-* (libs/game, from the makepad-internal fork). These only # resolve once the fork is merged AND the rev above is bumped to the merged # commit — the traffic game writes against this API now; see the world/road # modules. Leave the rev alone until the fork merge lands. makepad-game-sim = { git = "https://gitdab.com/andodeki/makepad", rev = "a3d8f521a9aaa5052415e7d1de6b329a4a6eba73" } makepad-game-math = { git = "https://gitdab.com/andodeki/makepad", rev = "a3d8f521a9aaa5052415e7d1de6b329a4a6eba73" } makepad-game-blocks = { git = "https://gitdab.com/andodeki/makepad", rev = "a3d8f521a9aaa5052415e7d1de6b329a4a6eba73" } makepad-game-render = { git = "https://gitdab.com/andodeki/makepad", rev = "a3d8f521a9aaa5052415e7d1de6b329a4a6eba73" }