# Build directories
build/
build-*/
cmake-build-*/

# IDE
.idea/
.vscode/
*.swp
*.swo
*~

# Compiled objects
*.o
*.obj
*.a
*.so
*.dylib
*.dll

# WebAssembly output (but not Makefiles that end in .wasm)
*.wasm
!Makefile.wasm
*.js.map
*.wasm.map

# macOS
.DS_Store

# Emscripten cache
.emscripten_cache/

# Local emsdk installation (managed by scripts/setup-emsdk.sh)
/tools/emsdk/

# Clean clone for reproducible builds (generated by build-wxwidgets-wasm-clean.sh)
wxwidgets-clean/

# Test artifacts
/tests/node_modules/
/tests/playwright-report/
/tests/test-results/
# Baseline screenshots are a local cache fetched from R2 (tests/tools/screenshots/r2-sync.ts);
# only tests/screenshot-manifest.json is committed. The .env holds a dev's
# R2 keypair (r2-store.ts auto-loads it) — never commit it.
/tests/baseline-screenshots/
/tests/.env
/tests/bench-results/
/tests/pw-artifacts/
/tests/.test-port
/test-results/
/tests/apps/*.js
/tests/apps/*.html
/tests/apps/minimal_test.wasm
/tests/apps/standalone/*/*.js
/tests/apps/standalone/*/*.html
/tests/apps/standalone/*/*.wasm
/tests/apps/kicad/*.js
/tests/apps/kicad/*.wasm
# Demo board for the gerbview print test — provisioned at setup from
# site/public/gerber-demo/board (see tests/scripts/setup-kicad-wasm.sh), not committed.
/tests/apps/kicad/board/

# DOM-port test bundles (mirrored + built by scripts/build-wasm-test.sh --dom)

# Worktree-local canvas reference snapshot for regression gating (see
# features/wx-dom-port docs); derived from a local run, not a project asset
/tests/phase0-canvas-reference/
/tests/phase0-timestamp-noisy.txt
/tests/apps/kicad/*.tar.gz
!tests/apps/kicad/pcbnew.html
/tests/apps/gal-webgl/*.js
/tests/apps/gal-webgl/*.wasm
/tests/apps/3d-webgl/*.js
/tests/apps/3d-webgl/*.wasm
/temp/
*.log
*.tmp
output/
*.d
.playwright-mcp
.claude/worktrees/

# Feature patch scratch (generated by scripts/create-feature-patches.sh).
# Curated design docs live under docs/features/ and ARE committed.
/features/

# Temporary/disposable prebuilt WASM sets (native-EH + JS-EH × eeschema + pcbnew
# O1 builds) + the standalone perf harness, used to reproduce the runtime-perf
# comparison on demand. Large (~1 GB), never committed.
/benchmark-builds/

/memory/

# Wrangler (Cloudflare CLI) local state/cache — created when running R2 deploys.
.wrangler/
tests/.scratch/
*.o.stamp
tests/apps/standalone/*/stack_test*.mjs
tests/apps/standalone/*/coroutine_jspi_test*.mjs

# jspi retired the asyncify pipeline; leftover binaryen checkouts stay untracked
/binaryen/
