wesnoth/projectfiles/VC12
2017-11-30 11:59:01 +11:00
..
campaignd.vcxproj Properly update MSVC project files for new fs_commit files (cb99d90d and 28c51796) 2017-09-15 17:29:38 +10:00
campaignd.vcxproj.filters Properly update MSVC project files for new fs_commit files (cb99d90d and 28c51796) 2017-09-15 17:29:38 +10:00
files_with_deactivated_warnings.txt Update MSVC project files to VC12 (2013) 2016-04-30 02:31:34 -04:00
liblua.vcxproj Remove the Debug_with_VLD configuration from the Visual Studio project 2017-04-04 19:06:09 +03:00
liblua.vcxproj.filters Lua cleanup 2016-11-07 14:21:05 -06:00
README.md On Boost: update build scripts and documentation. 2017-10-06 20:38:50 +03:00
wesnoth.sln MSVC: Add Test_Debug and Test_Release to solution configurations 2017-04-28 18:22:55 -04:00
wesnoth.vcxproj Remove header from VC project (deleted in 056d7ac8). 2017-11-30 11:59:01 +11:00
wesnoth.vcxproj.filters Remove header from VC project (deleted in 056d7ac8). 2017-11-30 11:59:01 +11:00
wesnothd.vcxproj Update VC12 project for wesnothd 2017-11-26 15:26:17 -06:00
wesnothd.vcxproj.filters Removing recently-deleted files from VC projects. 2016-11-08 11:21:31 +11:00
wesnothlib.vcxproj Finish switch to MT19937 for randomness 2017-10-26 09:28:24 +11:00
wesnothlib.vcxproj.filters Finish switch to MT19937 for randomness 2017-10-26 09:28:24 +11:00
WindowsTimeout.cpp Update MSVC project files to VC12 (2013) 2016-04-30 02:31:34 -04:00
WindowsTimeout.vcxproj Basic tidying of VC project files. 2016-10-06 13:21:35 +11:00
WML_tests.cmd vcproj: Workaround for argument parsing regression 2016-05-14 19:19:22 +02:00

Compiling Wesnoth on Windows using Visual Studio

Please refer to the guide on wiki.wesnoth.org
http://wiki.wesnoth.org/CompilingWesnothOnWindows#Visual_Studio_2010_and_later

Generating a .vcproject file using cmake

The Visual Studio project is manually updated by its maintainers, which basically entails appending new source files as they are added to Wesnoth. Previously, it was regenerated by cmake, for which a legacy script msvc9-cmake.bat exists:

  1. make sure that git (formerly svn) command-line executable is in your %PATH%
  2. for wesnoth 1.8 and early pre-1.9 versions: download ftp://ftp.terraninfo.net/wesnoth/msvc9/external.zip (55mb download) and unpack it into wesnoth's directory - so, there'll be an 'external' folder in there.
  3. for wesnoth 1.9: download ftp://ftp.terraninfo.net/wesnoth/msvc9/external_19.zip (59mb download) and unpack it into wesnoth's directory - so, there'll be an 'external' folder in there.
  4. install cmake http://www.cmake.org/cmake/resources/software.html and put it into %PATH% (that can be done by the installer)
  5. to allow the game to run, put full path to external/dll into %PATH%
  6. run external/msvc9-cmake.bat
  7. open generated project file in msvc9 and compile. the project should pick up changes in cmake files automatically. Also, you can re-run the .bat file to regenerate it.

Building the prerequisites

We'll assume to have two General Folders for libraries and includes to store most of the prerequisites. (Otherwise each configuration setting for each project would need to have each and every 'lib' and 'include' folder added.)
C:\projects\_include
C:\projects\_lib

We'll now start downloading and compiling/copying the prerequisites into the necessary folders, all version numbers are minimal requirements:

  1. zlib-1.2.3 ( http://www.zlib.net/ )

    Download the zlib source code zlib123.zip and unpack it into the projects folder to get:
    C:\projects\zlib123\

    Open the file zlib.dsw in the folder
    C:\projects\zlib123\projects\visualc6\
    with MSVC and select 'Yes To All' to convert it into a VC9 project.

    Open the properties of the 'zlib' solution and in the 'Configuration Properties' select the 'DLL Release' 'Configuration'. Select 'OK' and then right-click the 'zlib' project and select 'Build'. After a successful Build, close that instance of MSVC.

  2. libsdl-1.2.10 ( http://www.libsdl.org )

    Download the development library file for Win32 as well as the source code
    SDL-1.2.10.zip
    SDL-devel-1.2.10-VC8.zip
    and unpack them into the projects folder to get:
    C:\projects\SDL-1.2.10\

    Copy the 'SDL.dll' and the 'SDL.lib' from the 'lib' folder and the contents of 'include' folder into the corresponding General Folder ( ..._include\ resp. ..._lib\ ).

    Unpack the 'VisualC.zip' and open the 'SDL.sln' file with MSVC. Follow the instructions to convert the project to VC9.

    Right-click the 'SDLmain' project and select 'Build'. After a successful Build, close that instance of MSVC.

    Copy 'SDLmain.lib' from
    C:\projects\SDL-1.2.10\VisualC\SDLmain\Debug
    into the 'lib' General Folder.

  3. libboost-1.50.0 ( http://www.boost.org/ )

    Note these instructions are still referring to Boost 1.48.0, and are so pending possible fixes to make it Boost >= 1.50.0 compliant.

    Download Boost and unpack it into the folder
    C:\projects\

    This should give you a folder structure like
    C:\projects\boost_1_48_0\

    Download the pre-built bjam executable
    boost-jam-3.1.17-1-ntx86.zip
    from the bjam download page on sourceforge http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=72941 and unpack and move the bjam executable it into the base folder of boost
    C:\projects\boost_1_48_0\

    Now start the command prompt (CMD.exe) and invoke the following commands:

    	C:\> set ZLIB_SOURCE=C:\projects\zlib123\
    	C:\> set ZLIB_LIBPATH=C:\projects\zlib123\projects\visualc6\Win32_DLL_Release
    	C:\> set ZLIB_BINARY=zlib1.dll
    	C:\> cd C:\projects\boost_1_48_0
    	C:\projects\boost_1_48_0> bjam ^
    	More? --toolset=msvc ^
    	More? --build-type=complete ^
    	More? --prefix="C:\projects\Boost\" install
    

    If the upper last command doesn't work, replace the last line with:

    	--prefix="C:\projects\Boost" install
    

    Now bjam will compile all variants of the boost library binaries for MSVC 2008 and copies them into the folder
    C:\projects\Boost\lib\
    while all required headers are copied into
    C:\projects\Boost\include\boost-1_38\boost

    Use the time bjam is busy compiling (possibly several hours) as you wish. (It is possible to continue downloading and copying the include and lib files since all required compiling is done.)

    Once bjam has finished building/copying, you then can delete the folder
    C:\projects\boost_1_48_0\
    to free up space.

  4. sdl-image-1.2 (with PNG support) ( http://www.libsdl.org/projects/SDL_image )

    Download the binary file for Win32
    SDL_image-devel-1.2.7-VC9.zip
    and unpack it into the projects folder to get:
    C:\projects\SDL_image-1.2.7\

    Copy the contents of each the 'lib' and the 'include' folder into the corresponding General Folder.

  5. sdl-mixer-1.2.12 (with Vorbis support) ( http://www.libsdl.org/projects/SDL_mixer )

    Download the binary file for Win32
    SDL_mixer-devel-1.2.12-VC8.zip
    and unpack it into the projects folder to get:
    C:\projects\SDL_mixer-1.2.12\

    Copy the contents of each the 'lib' and the 'include' folder into the corresponding General Folder.

  6. sdl-ttf-2.0.8 ( http://www.libsdl.org/projects/SDL_ttf )

    Download the binary file for Win32
    SDL_ttf-devel-2.0.8-VC8.zip
    and unpack it into the projects folder to get:
    C:\projects\SDL_ttf-2.0.8\

    Copy the contents of each the 'lib' and the 'include' folder into the corresponding General Folder.

  7. libfontconfig-2.4.1 ( http://www.gtk.org/download/win32.php )

    Download the 'Fontconfig' package 'Binaries' from the 'Third Party Dependencies'
    fontconfig-2.4.2-tml-20071015.zip
    and unpack it into the projects folder to get: C:\projects\fontconfig-2.4.2\

    Copy the 'libfontconfig-1.dll' from the 'bin' folder into the 'lib' General Folder.

  8. pangocairo-1.24.4 ( http://www.gtk.org/download-windows.html )

    Download the following 'Binaryies' and 'Dev' packages from the 'GTK+ individual packages'
    cairo_1.8.6-1_win32.zip
    cairo-dev_1.8.6-1_win32.zip
    glib_2.20.0-1_win32.zip
    glib-dev_2.20.0-1_win32.zip
    pango_1.24.0-1_win32.zip
    pango-dev_1.24.0-1_win32.zip
    and unpack them into the projects folder to get:
    C:\projects\pangocairo\

    Copy all dll's from the 'bin' folder into the '_lib' General Folder. Copy the contents (but not the subfolders) of the 'lib' folder into the corresponding General Folder. Copy the 'glibconfig.h' file from
    C:\projects\pangocairo\lib\glib-2.0\include into the '_include'
    General Folder. Copy the contens (including subfolders) of the following folders into the '_include' General Folder:
    C:\projects\pangocairo\include\cairo
    C:\projects\pangocairo\include\glib-2.0
    C:\projects\pangocairo\include\pango-1.0