makepad/apps/terminal/Cargo.toml
Admin 2e176aaea5 widgets, builder: the big widget families are features, all on by default, and the Builder takes none of them -- makepad-widgets gains tweaker (with reflect and the theme store; needs dock and data), charts (chart, chart shapes, waveform; needs color), color, data (data grid, tree view, file tree), dates (calendar, date and time pickers), chat, dock, rich_text (text flow, rich text, HTML, Markdown, LaTeX maths, log list; makepad-html, pulldown-cmark and latex-math become optional), dropzone, vector, glass and nav_menus (floating action, radial, pill-nav, line and hamburger menus) and command_palette. Each gates its modules, re-exports and registration; the core stays unconditional. Without the tweaker a Window's Tweaker is an empty hidden view, as the voice wave is without voice, and the window, widget tree and fab panel skip their tweaker and dock hooks. wm_theme and wm_api take no families; the terminal app keeps them all through a default all_widgets feature so shared target dirs build makepad-widgets once. The Builder (tools/makepad_builder) takes widgets and terminal without defaults: macOS release 30.04 MB -> 24.41 MB (stripped 24.39 -> 19.70 MB, __text 15.96 -> 12.62 MB), window and TUI unchanged (identical grab), no script errors in its log. Checked: cargo check --workspace, widgets with no features and with each feature alone, widget lib tests with and without defaults (1849 / 1100 pass), Builder on macOS, Windows and Linux targets.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 00:10:52 +02:00

49 lines
1.5 KiB
TOML

# terminal — a first-class terminal emulator as a plain full-window Makepad app.
#
# The VT core under src/term/ is a clean Rust port of Ghostty's terminal
# subsystem (github.com/ghostty-org/ghostty, MIT license — see
# src/term/mod.rs for attribution). The PTY layer is carried over from
# makepad-terminal-core, which had already solved spawn/resize/controlling-tty
# on macOS, Linux and Windows (ConPTY).
#
# terminal runs standalone, and unmodified inside makepad-wm / Studio tiles via
# the shared --stdin-loop client runtime every Makepad app has.
[package]
name = "makepad-terminal"
version = "0.1.0"
edition = "2021"
default-run = "terminal"
[lib]
name = "makepad_terminal"
path = "src/lib.rs"
[[bin]]
name = "terminal"
path = "src/main.rs"
[features]
# Every widget family, as the other apps build makepad-widgets, so a shared
# target dir compiles it once. The Builder links only the terminal widget and
# turns this off.
default = ["all_widgets"]
all_widgets = ["makepad-widgets/default"]
[dependencies]
makepad-widgets = { path = "../../widgets", default-features = false }
makepad-ai-services = { path = "../../libs/ai/services" }
makepad-strict-json = { path = "../../libs/strict_json" }
makepad-wm-theme = { path = "../../libs/wm_theme" }
makepad-wm-api = { path = "../../libs/wm_api" }
[target.'cfg(windows)'.dependencies.windows]
path = "../../libs/windows/windows-rs"
version = "0.62.2"
features = [
"Win32_Foundation",
"Win32_Security",
"Win32_System_Console",
"Win32_System_Pipes",
"Win32_System_Threading",
]