chore(sdk): 公开仓适配 — 剔除构建产物/宿主测试二进制; vendored meow_font.c/meow_ipc.h/meow_font.h/meow_notif.h 使其自包含; build_sdk.sh/build_hello.sh 改 MEOW_CC/MEOW_SYSROOT 可配置; 去除内部路径与 ncm 引用

This commit is contained in:
MeowOS committed 2026-09-01 21:12:17 +08:00
1 parent 4f66da66ad
commit 86605d01e3
26 files changed
+1938 -32

No files matched your search

+12 -14
View File
@@ -1,31 +1,29 @@
#!/bin/bash
# build_sdk.sh — 构建 meow_ui.a(mipsel 静态库,含 meow_font.o 内联打包,
# 应用只需链 meow_ui.a + libz.a + -lpthread)。
# build_sdk.sh — 构建 meow_ui.a(mipsel 静态库,内含 meow_font.o,应用只需链 meow_ui.a + libz.a + -lpthread)。
#
# 本公开 SDK 仓**自包含**:公共头(meow_ui.h 伞头 + include/ 子头 + meow_ipc.h / meow_font.h /
# meow_notif.h)与字体运行时源码(meow_font.c)都在 sdk/ 内,不再依赖主仓 meow_launcherd/。
#
# 交叉编译器:默认 MeowOS 开发机路径 $HOME/Project/R3ProII/.tools/zig-mipsel-cc;
# 可用环境变量 MEOW_CC 覆盖(或用你自己装好的 zig 交叉 cc,--target=mipsel-linux-musleabi soft-float)。
set -e
ROOT="$HOME/Project/R3ProII"
cd "$(dirname "$0")"
CC="$ROOT/.tools/zig-mipsel-cc"
CC="${MEOW_CC:-$HOME/Project/R3ProII/.tools/zig-mipsel-cc}"
AR="${AR:-/usr/bin/ar}" # 系统 GNU ar 即可归档 mipsel ELF 对象(架构无关)
rm -f meow_ui.a *.o
# -I../meow_launcherd:meow_notify_ipc.c 复用共享协议头 meow_ipc.h(同一份、杜绝两端漂移)
OBJS="meow_ui_gfx meow_ui_log meow_ui_notify meow_notify_ipc meow_ui_img meow_ui_widget meow_ui_input meow_ui_theme meow_ui_ime meow_pinyin meow_ui_sys meow_ui_vol meow_ui_activity meow_ui_global meow_ui_dialog meow_ui_config meow_ui_draw meow_ui_view meow_ui_nav meow_ui_media meow_ui_audio stb_image"
CFLAGS="-Os -static -I$ROOT/patch_v2/meow_launcherd"
# meow_font.c = 预渲染位图字体运行时(自包含:只含 meow_font.h + 标准头;最小 zlib ABI 自声明,
# 链接时用 sysroot 的 libz.a),随 SDK 一并 vendored。
OBJS="meow_ui_gfx meow_ui_log meow_ui_notify meow_notify_ipc meow_ui_img meow_ui_widget meow_ui_input meow_ui_theme meow_ui_ime meow_pinyin meow_ui_sys meow_ui_vol meow_ui_activity meow_ui_global meow_ui_dialog meow_ui_config meow_ui_draw meow_ui_view meow_ui_nav meow_ui_media meow_ui_audio stb_image meow_font"
CFLAGS="-Os -static -Iinclude -I."
for f in $OBJS; do
echo "== cc $f =="
"$CC" $CFLAGS -c "$f.c" -o "$f.o"
done
# meow_font.o(复用 launcher 字库,打进 meow_ui.a → 应用只链一个库)
TMP="$(mktemp -d)"
( cd "$TMP" && "$AR" x "$ROOT/patch_v2/meow_launcherd/meow_font.a" && ls *.o )
cp "$TMP"/*.o meow_font.o 2>/dev/null || { echo "meow_font extract failed"; rm -rf "$TMP"; exit 1; }
rm -rf "$TMP"
rm -f meow_ui.a
for f in $OBJS; do "$AR" rcs meow_ui.a "$f.o"; done
"$AR" rcs meow_ui.a meow_font.o
echo "== meow_ui.a =="
ls -la meow_ui.a
"$AR" t meow_ui.a