wesnoth/projectfiles/VC16
Iris Morelle 48e6b821b0 i18n: Convert POSIX/Win32 locale table file into a map
This removes the need for the separate file and the giant if chain by
using a std::map instead.
2020-01-19 12:40:03 -03:00
..
campaignd.vcxproj Make the Debug and Release builds put their executables in the same place. 2020-01-05 01:35:09 -06:00
campaignd.vcxproj.filters Added VC16 projectfiles 2019-08-04 06:01:42 +11:00
files_with_deactivated_warnings.txt Added VC16 projectfiles 2019-08-04 06:01:42 +11:00
liblua.vcxproj VC16: build with C++17 again, enable /utf-8 for all projects 2019-08-11 19:53:27 +11:00
liblua.vcxproj.filters Added VC16 projectfiles 2019-08-04 06:01:42 +11:00
README.md Added VC16 projectfiles 2019-08-04 06:01:42 +11:00
wesnoth.sln Remove WindowsTimeout.cpp and related. 2019-12-31 18:43:36 -06:00
wesnoth.vcxproj i18n: Convert POSIX/Win32 locale table file into a map 2020-01-19 12:40:03 -03:00
wesnoth.vcxproj.filters i18n: Convert POSIX/Win32 locale table file into a map 2020-01-19 12:40:03 -03:00
wesnothd.vcxproj Make the Debug and Release builds put their executables in the same place. 2020-01-05 01:35:09 -06:00
wesnothd.vcxproj.filters Fix AppVeyor for sample_user_handler removal. 2019-08-23 12:15:35 -05:00
wesnothlib.vcxproj VC16: build with C++17 again, enable /utf-8 for all projects 2019-08-11 19:53:27 +11:00
wesnothlib.vcxproj.filters Got VS 2019 64 bit build working on master 2019-08-04 22:28:00 +11:00

Compiling Wesnoth on Windows using Visual Studio

The current minimum Visual Studio version required for compiling Wesnoth is Visual Studio 2013 (VC12). Compilation is also supported with Visual Studio 2015 (VC14) and later versions. However, since we keep the project files in the Git repository targeted at the minimum version, it is recommended you duplicate the wesnoth/projectfiles/VC12 directory and rename it after the Visual Studio version with which you wish to build.

Prerequisites

We maintain a handy GitHub repository with all the external libraries (see INSTALL.md) Wesnoth requires. It has various branches corresponding to the Visual Studio version you are building with. Be sure to use the libraries from the appropriate branch!

What to do

  1. Clone or download a snapshot of the aforementioned dependency repository. If you do the latter, be sure you've downloaded the snapshot for the correct branch, not master! Either way, it should be cloned/unpacked into the same directory as Wesnoth. If you have Wesnoth cloned in Documents/wesnoth, for example, the dependency pack should be at Documents/external. Note that external is the name of the resulting directory by default. DO NOT RENAME IT!

  2. If you cloned the repository, switch to the the version-appropriate branch now.

  3. Return to wesnoth/projectfiles and duplicate the VC12 folder if applicable, as mentioned above.

  4. Open projectfiles/VCXX/wesnoth.sln in Visual Studio. At this point, it may prompt you to re-target the projectfiles for your current VS and Windows versions. Do so; the build will likely fail if you do not.

  5. Optional: by default, Wesnoth's WML unit tests are run after each build. This can be quite annoying and/or time-consuming if you build regularly. They can be disabled by heading to the wesnoth projectfile's properties, under Build Events → Post-Build Event. Delete the value in the "Command Line" field.

  6. That's it! You can now go ahead and start the build (Build → Build Solution).

  7. Important! After building, copy all the files from external/dll into the same directory (wesnoth/ by default) as the newly built executable . The game will not start if you fail to do this.

Manually updating the external dependencies

We do our best to keep the build dependency repository up-to-date with the latest versions of the libraries within, as well as synced with any build requirement changes. If you want to build with a different version of a certain library, however, you can fetch the relevant files at the links below:

The other libraries require complicated compilation procedures too in-depth to document here.