Latest Posts

Changes in Building Widelands in Visual Studio

Old Title


Revision Differences of Revision 1

This article explains how to use Microsoft Visual Studio to build and develop Widelands on Windows ¶

## Prerequisites ¶

- Install [python](https://www.python.org) ¶
- Install [Visual Studio](https://visualstudio.microsoft.com) together with the English language pack (required for vcpkg). ¶
- Download and install [vcpkg](https://github.com/microsoft/vcpkg) ¶
+ Run `bootstrap-vcpkg.bat` first. ¶
+ Then run `vcpkg integrate install` to integrate vcpkg with Visual Studio. ¶
+ Install all dependencies (Note the selected static triplet): ¶
`vcpkg install --triplet=x64-windows-static boost gettext libpng icu glbinding sdl2 sdl2-ttf sdl2-mixer[libvorbis,libflac,mpg123] sdl2-image[libjpeg-turbo,tiff] graphite2 harfbuzz opusfile libwebp` ¶
+ If you want to save space, you can safely delete the `buildtrees` folder. ¶
- Download the latest static release zip of [gettext](https://github.com/mlocati/gettext-iconv-windows/releases). ¶
+ Extract the contained `bin` folder to `[vcpkg]/installed/x64-windows-static/bin` ¶
- Remove the prefix `lib` from libmpg123.lib libiconv.lib libintl.lib libcharset.lib in `[vcpkg]/installed/x64-windows-static/lib` and `[vcpkg]/installed/x64-windows-static/debug/lib` (libmpg123.lib -> mpg123.lib).. ¶

## Project configuration ¶

- Copy `utils/win32/CMakeSettings.json` to the top level directory to use with Visual Studio. ¶
- Launch Visual Studio and select the Widelands root as workspace. ¶
+ CMake should automatically start parsing the project and picking up the vcpkg toolchain file. ¶
+ Then start compilation ¶
- Copy `utils/win32/launch.vs.json` to the `.vs/` directory as start-configuration. ¶

## Troubleshooting ¶

- vcpkg fails to build a package (e.g. freetype) ¶
+ remove the package (or its dependency parent, e.g. sdl-ttf) from the install list and install it separately afterwards (don't forget the `--triplet=x64-windows-static`). vcpkg sometimes has problems resolving dependency chains.