# lmcp Windows MSI build This directory contains the WiX manifest and packaging files for the Windows MSI build of lmcp. ## Recommended: cross-build on Linux (one command) ```sh ./build-msi.sh /path/to/output/dir ``` Downloads Lua 5.4 Win64 binaries from LuaBinaries, cross-compiles LuaSocket via `mingw-w64`, stages `pkg/lua/`, and runs `wixl` to produce `lmcp-.msi`. No Windows VM required. Prereqs on a Debian/Ubuntu builder: ```sh sudo apt install wixl unzip gcc-mingw-w64-x86-64 \ binutils-mingw-w64-x86-64 mingw-w64-x86-64-dev curl ``` Version comes from `lmcp.wxs` `Version="…"`. Bump that before building a release. ## Alternative: build on Windows via WiX toolset ```cmd sync.sh REM see "tracked vs. generated" REM ensure pkg/lua/ has the runtime — see below candle.exe lmcp.wxs light.exe lmcp.wixobj -o lmcp-1.x.y.msi ``` ## What's tracked vs. generated - **Tracked** (edit in git): - `lmcp.wxs` — WiX MSI manifest - `sync.sh` — copies root .lua sources → `pkg/` - `README.md` — this file - `pkg/install_service.bat` — Windows service installer - `pkg/start.bat` — manual launcher - **Generated / external** (gitignored): - `pkg/lmcp.lua`, `pkg/server.lua`, `pkg/json.lua` — produced by `sync.sh`. Never edit directly; edit the root files and re-sync. - `pkg/lua/` — the Lua + LuaSocket runtime drop-in. Download separately and place here. Suggested source: the lua-binaries project (https://github.com/rjpcomputing/luaforwindows) or a similar pre-built bundle. The MSI expects `pkg/lua/lua.exe`, `pkg/lua/lua54.dll`, and the `pkg/lua/socket/` + `pkg/lua/mime/` subdirectories per the manifest. ## Issue history Issue #18 (closed in v1.1.0) introduced this workflow after the `pkg/` lua sources had silently drifted ~6 months out of date, missing every feature added since April 2026.