Building on Windows
August 19, 2024 · View on GitHub
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 build system running within the MSYS2 environment to provide dependencies (deprecated, support will be probably removed in the future).
Note
CMake support is currently an experimental internal-only, work-in-progress feature; it's not ready for public consumption yet. Please ignore the
CMakeLists.txtfiles in the source tree.
Build using Visual Studio
-
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.
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.
-
Edit
src\platform\visualc\config.hand enableC_DEBUGand optionallyC_HEAVY_DEBUGby setting them to1instead of0. -
Select a Release build type in Visual Studio, and run the build.
Build using MSYS2 (deprecated)
Note
MSYS2 builds are not actively maintained or tested by the development team. We will probably remove this section in the future.
-
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.iniIf 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