#!/usr/bin/env bash
# Build HAP only: hvigorw assembleHap (no webpack/ASCF compile)
source "$(cd "$(dirname "$0")/.." && pwd)/scripts/_config.sh"

ENGINE_DIR="$REPO_ROOT/flexui-engine"

build_mode="debug"
skip_engine=false
while [[ $# -gt 0 ]]; do
  case "$1" in
    --no-engine|--skip-engine)
      # 跳过 flexui_engine HAR 重建(仅改 demo/卡片/页面时显著提速)
      skip_engine=true
      shift
      ;;
    *)
      build_mode="$1"
      shift
      ;;
  esac
done
log "Building HAP (hvigorw, mode=$build_mode)..."

build_mode_param=""
if [ "$build_mode" = "debug" ]; then
  build_mode_param="-p buildMode=debug"
  log "(hvigorw debug mode — FOOTSTONE_DLOG enabled)"
fi

# Step 1: Ensure flexui_engine HAR is up-to-date (native .so may have changed)
if [ "$skip_engine" = "true" ]; then
  log "Skipping flexui_engine HAR build (--no-engine)"
else
  log "Building flexui_engine HAR (ensuring native .so is current)..."
  build_engine_flag=""
  [ "$build_mode" = "release" ] && build_engine_flag="--release"
  "$REPO_ROOT/scripts/build-engine.sh" $build_engine_flag 2>&1 | tail -3
fi

# Sync: clean shared as_apis cache + engine caches, then reinstall
log "Syncing dependencies..."
rm -rf "$REPO_ROOT/as_apis/oh_modules" "$REPO_ROOT/as_apis/build"
rm -rf "$ENGINE_DIR/.hvigor" "$ENGINE_DIR/entry/build" "$ENGINE_DIR/entry/oh_modules"
rm -rf "$ENGINE_DIR/oh_modules/.ohpm" "$ENGINE_DIR/oh_modules/.tmp"
cd "$ENGINE_DIR" && ohpm install --all 2>&1 | tail -1

cd "$ENGINE_DIR"
"$HVIGORW" $HVIGORW_ARGS $build_mode_param assembleHap --no-daemon 2>&1 | tail -10
log "HAP built: $(ls -lh "$HAP" | awk '{print $5}')"