Repository navigation
build: write all build output to build/ instead of the repo root - #485
Merged
Merged
Conversation
build.bat now puts every binary and linker PDB in build\ (laid out like an install: Wind.exe, WindTray.exe, WindConfig.exe, wind_tests.exe and a mirrored ui\dist) and every object, compiler PDB and .res file in build\obj\<target>\ (wind, wind_uiaccess, tray, config, test, check\*). Nothing lands in the repo root or src\ any more. The working directory stays the repo root, so the test binary still finds tests\fixtures and a self-test writes wind_selftest.png where it is started. Consumers updated: installer\wind.nsi (File sources and the WindUA probe), tools\release.ps1 (WindUA rename, output checks, signing), tools\uiaccess_setup.ps1 (deploy sources), tools\installer_check.ps1 (WindUA probe), CI step comments, .gitignore, README, CLAUDE.md, installer\README.md, docs\VERIFICATION.md and docs/architecture 04, 08, 11, 12. A dev build keeps its ini, profiles and logs next to build\Wind.exe (ResolveIniPath/ResolveLogDir unchanged). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TdjopXZfsUiesYxYLYHEdH
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #484
Review item 2026-10-13 ("build.bat writes .obj files and every exe/pdb into the repo root"), owner decision: all build output moves to
build\.Layout
build\:Wind.exe,WindTray.exe,WindConfig.exe,wind_tests.exe, their linker PDBs, andui\distmirrored bybuild.bat config(robocopy /MIR). This is the install layout, soExeDir()lookups (WindTray.exe, WindConfig.exe,<exe dir>\ui\dist) work with no code change.build\obj\<target>\: objects, compiler PDBs and.resfiles per target (wind,wind_uiaccess,tray,config,test,check\core|tray|config). Nothing goes tosrc\any more either (the old tray/config objects and.resfiles did).build\wind_tests.exestill findstests\fixtures, andWIND_SELFTEST=1 build\Wind.exewriteswind_selftest.png/wind_hdr_diag.txtto the cwd (root, still gitignored).build\is writable, soResolveIniPath()/ResolveLogDir()keep a dev build'smagnifier.ini,profiles\andlogs\next tobuild\Wind.exe. Documented in 11 (including: deletingbuild\deletes them, and an old root ini is no longer read).Consumers changed
build.bat: all targets (default, uiaccess via:core_exe, tray, config, test, check; installer unchanged apart from whatwind.nsipacks)installer\wind.nsi: everyFile "..\X.exe"->..\build\X.exe,!if /FileExists "..\build\WindUA.exe", commenttools\release.ps1:$bin = $root\build; WindUA rename, missing-output check, signingtools\uiaccess_setup.ps1: deploy sourcesbuild\Wind.exe|WindConfig.exe|WindTray.exe(ui\diststill from the source copy)tools\installer_check.ps1:build\WindUA.exeprobe for the local-signing checks.github/actions/build-installer/action.yml,.github/workflows/build.yml: comment/step name only (they consumedist\only, unchanged).gitignore:build/first; root*.obj/*.exe/...and/magnifier.inietc. kept with a comment (clones holding pre-build\ output,tools/testenvgamesim.exe)README.mdDevelopment,CLAUDE.mdCommands + selftest gotcha,installer\README.md,docs\VERIFICATION.mddocs/architecture: 11 (targets table, layout, dev runtime files, deploy, WindUA), 04 (selftest), 08 (dev ini), 12 (logs, selftest)tools\testenv\*and the probe scripts runC:\Program Files\Wind\Wind.exeonly;ui/has no root-path lookups;release.yml/alpha.ymlonly touchdist\.Gates (local, this branch)
build.bat check: exit 0build.bat test: 643/643 cases, exit 0build.bat uiaccess,build.bat tray,build.bat: exit 0 (only the pre-existing C4996 fopen warnings)npm ci+build.bat config: exit 0,build\WindConfig.exeandbuild\ui\dist\index.htmlpresentnpm run test:rules: pass;npx playwright test: 205 passedbuild.bat installerwith a hand-madebuild\WindUA.exe(uiaccess build renamed, as release.ps1 does): exit 0, everyFile source exists: ..\build\*.exeok, LOCAL_SIGN path packed; silent install smoke skipped (non-elevated shell)git status --porcelain --ignoredafter all builds: nothing in the root besides the ignoredbuild/,dist/(installer),ui/dist,ui/node_modulestools\release.ps1andtools\uiaccess_setup.ps1not run (owner deploy); every path they use was Test-Path checked after the builds: all presentNot verified
installer_check.ps1and the CI release run (runner is admin)build\Wind.exe/build\WindConfig.exe(ini/logs landing inbuild\, settings page loading frombuild\ui\dist) and the signed deploy viauiaccess_setup.ps1🤖 Generated with Claude Code
https://claude.ai/code/session_01TdjopXZfsUiesYxYLYHEdH