#!/usr/bin/env bash # One-shot on a Linux host: cross-build Windows x86_64 release (MinGW). # Output: dist/windows-x86_64/ — copy that folder to a Windows machine. set -euo pipefail REPO_URL="${CST_AGENT_REPO:-https://git.whcself.xyz/WHC/CST-agent.git}" DIR="${1:-}" if [[ -z "$DIR" ]]; then if [[ -f CMakeLists.txt && -d src ]]; then DIR="$(pwd)" else DIR="CST-agent" fi fi if [[ ! -f "$DIR/CMakeLists.txt" ]]; then echo "==> git clone $REPO_URL -> $DIR" git clone "$REPO_URL" "$DIR" fi cd "$DIR" need() { command -v "$1" >/dev/null || { echo "missing $1 (install mingw-w64 gcc cmake git)" >&2; exit 1; }; } need git; need cmake; need x86_64-w64-mingw32-gcc echo "==> third-party (curl Schannel + PDCurses + busybox-w32)" chmod +x scripts/*.sh 2>/dev/null || true ./scripts/build_third_party_mingw.sh all echo "==> cmake Windows TUI" cmake -B build-win-tui \ -DCMAKE_TOOLCHAIN_FILE=cmake/mingw-w64-x86_64.cmake \ -DCST_BUILD_TUI=ON \ -DCMAKE_PREFIX_PATH="$PWD/third_party/prefix-mingw" \ -DPDCurses_ROOT="$PWD/third_party/prefix-mingw" cmake --build build-win-tui -j"$(nproc 2>/dev/null || echo 4)" echo "==> package" ./scripts/package_windows.sh echo echo "OK: dist/windows-x86_64/" echo "Copy that folder to Windows, then:" echo " set OPENAI_API_KEY=sk-..." echo " set OPENAI_BASE_URL=https://api.openai.com/v1" echo " set OPENAI_MODEL=gpt-4.1-mini" echo " cst-agent.exe --workspace ." echo "See docs/env_openai.md and docs/README-windows.md"