#!/bin/bash # build_sdk.sh — 构建 meow_ui.a(mipsel 静态库,含 meow_font.o 内联打包, # 应用只需链 meow_ui.a + libz.a + -lpthread)。 set -e ROOT="$HOME/Project/R3ProII" cd "$(dirname "$0")" CC="$ROOT/.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 meow_ui_box meow_ui_anim meow_ui_scroll" CFLAGS="-Os -static -I$ROOT/patch_v2/meow_launcherd" 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