#!/bin/bash # build_ncm_host_mem.sh — 宿主编译 ncm 的真实页面/逻辑(离屏 480x720)+ 内存测量 harness。 # # 与 build_ncm_host.sh 的差异: # * 复用既有 out/host/sdk_*.o(SDL 层既有对象,避免 SDK meow_ui_gfx.c 当前工作区 # 的注释语法缺陷导致全量 SDK 重编失败),仅重编 meow_ui_img.c(新增 meow_img_downscale)。 # * 用途:验证封面降采样(内存瘦身)在宿主按预期工作;供 mem_sim 报告各场景 RSS。 # 运行:MEM_SIM=1 ./ncm_host(内置内存自测)或 NCM_PAGE=home MEOW_UI_DUMP=/tmp/home.ppm ./ncm_host cd "$(dirname "$0")" ROOT="$HOME/Project/R3ProII" OUT="$PWD/out" mkdir -p "$OUT/host" CC_HOST=${CC_HOST:-gcc} SDK_DIR="$ROOT/patch_v2/sdk" MBED="$OUT/mbedtls/host" INC="-I. -I../sdk -I../meow_launcherd -Icore \ -I$SDK_DIR -I$ROOT/patch_v2/meow_launcherd \ -Ivendor/mbedtls/include -Ivendor/jsmn -Ivendor/qrcodegen/c -Ivendor/minimp3 -Ivendor/dr_flac" echo "==> recompile host meow_ui_img (adds meow_img_downscale)" $CC_HOST -O2 -c -DMEOW_UI_HOST_TEST -I"$SDK_DIR" -I"$ROOT/patch_v2/meow_launcherd" \ "$SDK_DIR/meow_ui_img.c" -o "$OUT/host/sdk_meow_ui_img.o" || exit 1 echo "==> host app sources (exclude app.c: test provides main + g_st)" APP_SRC="app/ui/login.c app/ui/home.c app/ui/playlist.c app/ui/player.c \ app/ui/settings.c app/ui/search.c app/ui/ncm_colors.c app/ui/chrome.c \ app/logic/appstate.c app/logic/lyric.c app/logic/songmeta.c \ app/logic/cover.c app/logic/account.c app/play/player_manager.c app/play/audio_out.c \ app/play/ipc_media.c app/play/decoder.c app/play/stream_src.c app/play/minimp3_impl.c" for f in $APP_SRC; do b=$(basename "$f" .c) $CC_HOST -O2 -c -DMEOW_UI_HOST_TEST -DJSMN_HEADER $INC "$f" -o "$OUT/host/$b.o" || { echo "app $f FAILED"; exit 1; } done # dr_flac 实现 TU $CC_HOST -O2 -c -Ivendor/dr_flac app/play/dr_flac_impl.c -o "$OUT/host/dr_flac_impl.o" || exit 1 $CC_HOST -O2 -c -DMEOW_UI_HOST_TEST -DJSMN_HEADER $INC app/test/test_ncm_app.c -o "$OUT/host/app_test.o" || exit 1 echo "==> link ncm_host" $CC_HOST -O2 -o ncm_host \ "$OUT/host"/*.o \ out/core-host/*.o \ -L"$MBED" -lmbedtls -lmbedx509 -lmbedcrypto \ -lz -lpthread -lm ls -la ncm_host echo "run: NCM_PAGE=home MEOW_UI_DUMP=/tmp/home.ppm ./ncm_host (or MEM_SIM=1 ./ncm_host)"