Windows builds can be created using:
- Visual Studio 2022 IDE suite with Clang/LLVM compiler, and vcpkg to provide dependencies. This is the fully-supported toolchain used to create release builds.
- The Clang or GCC compilers using the Meson buildsystem running within the MSYS2 environment to provide dependencies.
-
Install Visual Studio Community 2022: https://visualstudio.microsoft.com/vs/community/.
- Select "C++ Clang tools for Windows" in the Visual Studio installer
-
Install/configure vcpkg.
-
Recent versions of Visual Studio already include it1, but it needs to be initialized. Open a Visual Studio Developer Command Prompt and run the following command:
vcpkg integrate install
-
Existing standalone versions should work as well.
-
-
Follow instructions in README.md.
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.
-
Edit
src\platform\visualc\config.h
and enableC_DEBUG
and optionallyC_HEAVY_DEBUG
by setting them to1
instead of0
. -
Select a Release build type in Visual Studio, and run the build.
-
Install MSYS2: https://www.msys2.org/wiki/MSYS2-installation/
-
Install Git:
pacman -S git
-
Clone and enter the repository's directory:
git clone https://github.com/dosbox-staging/dosbox-staging.git cd dosbox-staging
-
Update the pacman database and packages:
- Open an MSYS2 console from your start menu.
- Run
pacman -Syu
, answerY
, 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
, answerY
, and let it run to completion.
-
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.
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.
-
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.
-
Setup a GCC build from an MSYS2 MinGW x64 terminal:
meson setup build/release-gcc
-
Setup a Clang build from an MSYS2 MinGW Clang x64 terminal:
meson setup build/release-clang --native-file=.github/meson/native-clang.ini
If building for Vista use instead:
meson setup -Duse_fluidsynth=false -Duse_slirp=false build/release-clang --native-file=.github/meson/native-clang.ini
-
Compile:
meson compile -C build/release-gcc # or meson compile -C build/release-clang
-
Create a package of the binary and DLLs to a destination directory:
./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