Files
feedBack-desktop/WINDOWS_BUILD_REQUIREMENTS.md
T
2026-06-17 11:02:09 +02:00

69 lines
3.4 KiB
Markdown

# Windows Build Requirements
This document describes the dependencies and setup required to build Slopsmith Desktop on Windows.
## Required Software
### Visual Studio Build Tools 2022
- **Version**: 17.14 or later
- **Purpose**: Compile native C++ audio engine and Node.js native addons
- **Install**: `winget install Microsoft.VisualStudio.2022.BuildTools --override "--wait --passive --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"`
- **Required Components**: Desktop development with C++ workload
### CMake
- **Version**: 3.22 or later
- **Purpose**: Build system for native audio engine
- **Install**: `winget install Kitware.CMake`
- **Note**: Add to PATH: `C:\Program Files\CMake\bin`
### Git (for plugin cloning)
- **Purpose**: `clone_slopsmith` in `scripts/build-common.sh` clones the Slopsmith repo and every plugin via plain `git clone`. Git for Windows ships with Git Bash, which is required anyway to run the build scripts.
- **Install**: `winget install Git.Git` (you almost certainly already have this).
- **Optional (private plugins only)**: If any clones target private repos you have access to, configure git credentials (e.g. `git config --global credential.helper manager` plus a one-time push/clone to cache a PAT). The build does NOT use the GitHub CLI.
### Chocolatey (optional)
- **Purpose**: Package manager for cmake and ffmpeg (can also be downloaded directly)
- **Install**: See https://chocolatey.org/install
## Windows-Specific Build Notes
### Python Embeddable Distribution
The Windows build uses Python's embeddable distribution, which has a special configuration:
1. **`.pth` file isolation**: The Python embeddable distribution uses a `python312._pth` file that enables "isolated mode". In this mode, the `PYTHONPATH` environment variable is **completely ignored**.
2. **Solution**: Slopsmith paths must be added directly to the `._pth` file. This is handled automatically by `scripts/build-windows.sh`, but if you need to add custom paths:
```
# In python312._pth (relative to resources/python):
../slopsmith
../slopsmith/lib
```
### Git authentication for private plugins
If your build pulls private plugin repos (e.g. `got-feedback/feedback-plugin-cf`), make sure git can authenticate non-interactively before running the build — Git Credential Manager + a PAT or SSH key both work. The build uses `git clone --depth 1` for every plugin and does NOT call the GitHub CLI.
## Quick Start
```bash
# Install dependencies (Git for Windows brings Git Bash which the scripts run under)
winget install Microsoft.VisualStudio.2022.BuildTools Kitware.CMake Git.Git
# Add CMake to PATH (if not automatic)
export PATH="$PATH:/c/Program Files/CMake/bin"
# Run the build
bash scripts/build-windows.sh
```
## Common Issues
### "CMake is not installed"
- Install via winget: `winget install Kitware.CMake`
- Or add existing installation to PATH: `export PATH="$PATH:/c/Program Files/CMake/bin"`
### "Repository not found" during plugin cloning
- Configure git itself for authentication (the build uses plain `git clone`, not the GitHub CLI):
- Git Credential Manager + a Personal Access Token: `git config --global credential.helper manager`
- Or an SSH key registered on your account
- Verify you can manually `git clone` the failing plugin URL from Git Bash before retrying the build
- Confirm the plugin repository exists on GitHub and your account has access to any private repos referenced in `scripts/build-common.sh`'s clone list