需求(用户定案):App 复杂功能若依赖现成 Linux 二进制(板载 /usr/bin 或卡上 MeowOS/opt/bin)能效更好,声明后系统启动 App 前检查依赖是否存在。 - depends 行式声明:depends=curl,jq:optional,ffmpeg:required(无标注默认 required;也接受 :opt/:req;未知修饰符按 required 处理并 WARN;空项/超量丢弃) - launch_app_chain 冷启动时按序查 /usr/bin/<name> 与 <卡>/MeowOS/opt/bin/<name> (X_OK,两类命中即满足);缺 required → 不启动(toast「缺依赖: <name>」+ 日志, 沿用 CANNOT START 风格);optional 缺失 → 仅 WARN 放行;只在启动时查,不做周期复查 - nyai install 对包内 app.json depends 同查并提示(不阻断安装,缺 required 标注 「安装后启动将失败」) - 新增 meow_dep.c(独立 TU,解析/检查/块原因),宿主测试 test_depends.c 解析矩阵 12 用例 + 假根检查路径 12 用例全 PASS;launcher/nyai mipsel 交叉 -Wall -Wextra 0 warning;launcher 现有宿主测试回归全过 - 文档:APPS.md §2.1 字段表 + docs/MEOWOS_SPEC_REF.md §5.5 同步;hello app.json 加 depends:curl:optional 示例 launcher md5 899ac22c10f596909d7f35ea685744de(fw_content.conf 已更新;/usr/bin 只读,留给主会话打包固件)
36 lines
2.0 KiB
Bash
Executable File
36 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
||
# build_launcher.sh — MeowOS launcher (A-1/A-2: launcher 用 SDK 渲染栈).
|
||
#
|
||
# 变更点(相对 M2.27 / A-0):
|
||
# - launcher 不再自建 back_buf/meow_present/refresh_governor —— 改用 SDK 渲染栈:
|
||
# fb 指向 SDK 的 back_buf(meow_ui_back_buf),呈现统一 meow_ui_flush()(SDK present,
|
||
# 内含 vsync + 帧率门控 + 原子 blit 脏区);刷新率档位经 meow_ui_set_refresh_rate()/
|
||
# set_refresh_always_max() 交给 SDK(归口 PERF_SCHEDULER 显示子域)。
|
||
# - 播放器 fb 双缓冲交互(fb_backup_player/fb_norm_buf0/fb_restore_player/FBIOPAN/yoffset)
|
||
# 保留不动(与 present 上屏不同层)。
|
||
# - launcher 与 SDK 共用同一 meow_font.o(已打进 meow_ui.a)——不再单独链 meow_font.a。
|
||
# - MEOWOS_VERSION 0.7.21 → 0.7.23(M2.28)。
|
||
#
|
||
# Build(在 patch_v2/meow_launcherd 下):
|
||
# zig-mipsel-cc -I../sdk -Os -static main_menu.c statusbar.c fb_compositor.c settings_page.c \
|
||
# power_menu.c notif_center.c app_launcher.c audio.c backlight.c net.c about.c \
|
||
# font_theme.c keys.c util.c meow_touch.c meow_settings.c meow_notif.c \
|
||
# ../sdk/meow_ui.a <sysroot>/lib/libz.a -lpthread -o meow_launcherd
|
||
set -e
|
||
cd "$(dirname "$0")"
|
||
ROOT="$HOME/Project/R3ProII"
|
||
CC="$ROOT/.tools/zig-mipsel-cc"
|
||
SYSROOT="$ROOT/.tools/mipsel-linux-muslsf-cross/mipsel-linux-muslsf"
|
||
[ -f "../sdk/meow_ui.a" ] || { echo "!! 缺 ../sdk/meow_ui.a,先跑 sdk/build_sdk.sh"; exit 1; }
|
||
"$CC" -I"../sdk" -Os -static \
|
||
main_menu.c statusbar.c fb_compositor.c settings_page.c power_menu.c \
|
||
notif_center.c app_launcher.c audio.c backlight.c net.c about.c \
|
||
subpage.c wifi_page.c bt_page.c now_playing.c \
|
||
font_theme.c keys.c util.c meow_dep.c \
|
||
meow_touch.c meow_settings.c meow_notif.c meow_media.c meow_bgplay.c \
|
||
"../sdk/meow_ui.a" "$SYSROOT/lib/libz.a" -lpthread -o meow_launcherd
|
||
echo "== meow_launcherd =="
|
||
ls -la meow_launcherd
|
||
md5sum meow_launcherd
|
||
file meow_launcherd
|