# clock — a small Makepad app with two resident faces: the full clock with a # stopwatch and a countdown, and a compact home-widget tile. The WM picks the # face on the same window/swapchain via `HostedView`; one process, one model — # or, hosted in-process, one module instance in its own isolate (src/module.rs). [package] name = "makepad-clock" version = "0.1.0" edition = "2021" default-run = "clock" [[bin]] name = "clock" path = "src/main.rs" required-features = ["standalone"] [lib] name = "makepad_clock" path = "src/lib.rs" [features] # On-demand dylib for the Android super-app (apps/wm-dyn). No engine dep # here: the host that builds the lib binds it to its engine dylib itself # (apps/wm/src/dylib_host.rs), so this crate's manifest is the desktop's. dynamic-module = [] default = ["standalone"] # The standalone window: the F10 overlay and the port toward it. A host # that links the MODULE (makepad-wm) leaves this off and gets the lib only. standalone = ["dep:makepad-aichat", "dep:makepad-wm-api"] # The machine's own model in this window's chat (Qwen on the local # runtime). Off by default: the chat offers the Claude Code / Codex CLIs, # Claude Desktop (MCP) and the Claude API. `--features localai` adds it. localai = ["makepad-aichat?/localai"] [dependencies] makepad-widgets = { path = "../../widgets", default-features = false } makepad-wm-theme = { path = "../../libs/wm_theme" } makepad-civil-time = { path = "../../libs/civil_time" } # The assistant: the F10 overlay in this window, and the clock's one tool. makepad-aichat = { path = "../aichat", default-features = false, features = ["engine"], optional = true } # The window manager's vocabulary for the standalone window: the bar's # title and the polite close (the module has no window of its own). makepad-wm-api = { path = "../../libs/wm_api", optional = true } makepad-ai-services = { path = "../../libs/ai/services" } # The module contract: what the window manager seats in-process (src/module.rs). makepad-app-module = { path = "../../libs/app_module" }