dosbox-staging/docs/build-windows.md

104 lines
3 KiB
Markdown
Raw Permalink Normal View History

# Building on Windows
Windows builds can be created using:
- MSVC compiler, Visual Studio 2022 IDE suite, and vcpkg to provide dependencies
*(recommended)*.
- The Clang or GCC compilers using the Meson buildsystem running within the
MSYS2 environment to provide dependencies.
2022-12-14 14:42:44 +10:00
## Build using Visual Studio
1. Install Visual Studio Community 2022: <https://visualstudio.microsoft.com/>.
2. Install vcpkg: <https://github.com/Microsoft/vcpkg#quick-start-windows>.
3. Follow instructions in [README.md](/README.md).
### Create a Debugger build using Visual Studio
Note that the debugger imposes a significant runtime performance penalty.
If you're not planning to use the debugger then the steps above will help
you build a binary optimized for gaming.
2022-06-11 14:59:34 +12:00
1. Edit `src\platform\visualc\config.h` and enable `C_DEBUG` and optionally
`C_HEAVY_DEBUG` by setting them to `1` instead of `0`.
2022-12-14 14:42:44 +10:00
2022-06-11 14:59:34 +12:00
2. Select a **Release** build type in Visual Studio, and run the build.
2022-12-14 14:42:44 +10:00
## Build using MSYS2
1. Install MSYS2: <https://www.msys2.org/wiki/MSYS2-installation/>
2. Install Git: `pacman -S git`
3. Clone and enter the repository's directory:
``` shell
2021-10-03 08:58:26 -07:00
git clone https://github.com/dosbox-staging/dosbox-staging.git
cd dosbox-staging
```
4. Update the pacman database and packages:
- Open an MSYS2 console from your start menu.
- Run `pacman -Syu`, answer `Y`, and let it run to completion.
- Close your terminal when it's done.
- Re-open the terminal and repeat the process one last time: Run `pacman -Syu`, answer `Y`, and let it run to completion.
5. Install the GCC and Clang runtime groups:
Note: this will uninstall non-MinGW compilers followed by installing
the GCC and Clang runtime groups along with Staging's dependencies.
``` shell
cd dosbox-staging
pacman -R clang
pacman -R gcc
pacman -S $(cat packages/windows-msys2-clang-x86_64.txt packages/windows-msys2-gcc-x86_64.txt)
```
Close your terminal when this finishes.
6. Open a toolchain-specific MinGW terminal:
- **GCC**: _Start Menu > Programs > MSYS2 > MSYS2 MinGW x64_
- **Clang**: _Start Menu > Programs > MSYS2 > MSYS2 MinGW Clang x64_
You can then use those specific toolchains within the
respecitive terminal.
7. Setup a GCC build from an *MSYS2 MinGW x64* terminal:
``` shell
meson setup build/release-gcc
```
8. Setup a Clang build from an *MSYS2 MinGW Clang x64* terminal:
``` shell
meson setup build/release-clang --native-file=.github/meson/native-clang.ini
```
If building for Vista use instead:
``` shell
meson setup -Duse_fluidsynth=false -Duse_slirp=false build/release-clang --native-file=.github/meson/native-clang.ini
```
9. Compile:
``` shell
meson compile -C build/release-gcc
# or
meson compile -C build/release-clang
```
10. Create a package of the binary and DLLs to a destination directory:
``` shell
./scripts/create-package.sh -p msys2 build/release-gcc ../dosbox-staging-gcc-pkg
# or
./scripts/create-package.sh -p msys2 build/release-clang ../dosbox-staging-clang-pkg
```