3 Commits
Author SHA1 Message Date
LiHaohuaandClaude Opus 4.7 f12cf51e16 SDK: sync lv_conf demo flags, expose demos/ include, add NO_KBD_STUBS opt-out
sdk/include/lv_conf.h mirrors the emulator's (music + keypad_encoder
demos enabled) so apps using the SDK see the same LVGL feature set
the host provides.

sdk/cmake/CZApp.cmake gains:
- demos/ header search path so apps can #include
  "widgets/lv_demo_widgets.h" etc.
- NO_KBD_STUBS option for apps that want to resolve the host's real
  lv_sdl_keyboard_create at dlopen time (instead of the weak inert
  stub). Default weak stub stays for the 90% of apps that don't care
  about keyboard input.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 14:30:34 +08:00
LiHaohuaandClaude Opus 4.7 10c32fb1d5 Fix SDK default keyboard stubs to supply an indev read_cb
The emulator always dlsyms lv_sdl_keyboard_create / lv_sdl_keyboard_handler
and, when the app provides neither, falls back to a bare keypad indev with
no read_cb. LVGL then spams "indev_read_cb is not registered" every tick.

CZApp.cmake now emits weak defaults that install a proper no-op read_cb,
matching LVGL's signature (returns lv_indev_t*). Apps that want real
keyboard input override these with strong definitions at link time.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 14:30:34 +08:00
LiHaohuaandClaude Opus 4.7 d68ce499e0 Add app SDK (cz_app.h, lv_conf.h, CZApp.cmake) and schema loader
sdk/include/cz_app.h is the public ABI apps link against: two extern "C"
entry points (app_main, app_event) and the CZ_EV_* event enum.

sdk/cmake/CZApp.cmake gives app authors a one-liner
(cz_add_lvgl_app(target SOURCES ...)) that sets the right per-OS link
flags (-undefined dynamic_lookup on mac, --unresolved-symbols=ignore-all
on Linux, loud warning on Windows until T08 lands) and emits a ui_init
thunk so the current emulator keeps working while apps migrate to the
new ABI.

discover_projects.py now surfaces the new schema fields with safe
defaults so existing app-builder.json files still work unchanged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 14:30:34 +08:00