2.6 KiB
2.6 KiB
CST-Agent on Windows
Release layout
cst-agent.exe
busybox.exe # built from busybox-w32
libwinpthread-1.dll # MinGW runtime (required)
LICENSE.busybox
README-windows.md
Prebuilt tree from Linux cross-compile: agent/dist/windows-x86_64/.
Build (MinGW-w64 cross from Linux)
cd agent
# 1) third-party: curl (Schannel) + PDCurses + busybox-w32
./scripts/build_third_party_mingw.sh all
# sources:
# https://github.com/rmyorston/busybox-w32.git
# https://github.com/curl/curl.git
# https://github.com/wmcbrine/PDCurses.git
# Unix busybox (optional, Linux/Termux bundle):
# ./scripts/build_third_party_mingw.sh busybox-unix
# https://github.com/mirror/busybox.git
# 2) headless
cmake -B build-win -DCMAKE_TOOLCHAIN_FILE=cmake/mingw-w64-x86_64.cmake \
-DCST_BUILD_TUI=OFF -DCMAKE_PREFIX_PATH=$PWD/third_party/prefix-mingw
cmake --build build-win
# 3) TUI (PDCurses)
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
Copy build-win-tui/cst-agent.exe, third_party/busybox/busybox.exe, and
libwinpthread-1.dll into one folder.
Build natively on Windows (MSYS2)
The CMake build also works directly on Windows with MSYS2's mingw-w64 toolchain -- no separate Linux host needed:
# in an MSYS2 MINGW64 shell
pacman -S --needed --noconfirm \
mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-make \
mingw-w64-x86_64-curl mingw-w64-x86_64-pdcurses
cd agent
cmake -B build-win -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
cmake --build build-win --target cst-agent -j"$(nproc)"
CST_BUILD_TUI=ON (the default) picks up MSYS2's PDCurses automatically,
including its include/pdcurses/ layout; set -DPDCurses_ROOT=... only for
a custom PDCurses.
Two differences from the cross-build release layout above:
- Extra DLLs. MSYS2's curl package is the shared OpenSSL build, so the
executable needs its whole dependency chain beside it. Collect it with
ldd build-win/cst-agent.exe | grep mingw64. - Only build the
cst-agenttarget. Some sources undertests/are POSIX-only (two-argumentmkdir,setenv,arpa/inet.h,symlink) and do not compile with MinGW. The main program is unaffected.
Run
set CST_API_KEY=...
cst-agent.exe --headless --workspace . --prompt "echo hi"
cst-agent.exe --workspace .
Shell: bundled busybox.exe sh -c ... unless CST_SHELL is set.
Credentials: %APPDATA%\cst-agent\credentials (or console prompt).