mirror of
https://github.com/wesnoth/wesnoth
synced 2025-05-04 09:40:08 +00:00

At branch 'doc-from-discord-boost-discussion-20170926'. The build documentation and scripts were slightly out of date about Boost. This commit makes a (probably interim) update to them. (CMakeLists.txt|SConstruct): `wesnoth` won't build using Boost earlier than '1.50.0'. Boost 1.50.0 changed the location of version 3 of Boost filesystem, from 'boost/filesystem/v3/' (e.g. for 'using boost::filesystem::v3::path;') to 'boost/filesystem/' (e.g. for 'using boost::filesystem::path;', enforced since the very introduction of 'src/filesystem_boost.cpp'), making it incompatible unless using precompiler directives for supporting backwards versions of Boost filesystem prior than '1.50.0'. Using Boost 1.50.0 (and 51, 52 etc.) `wesnoth` is able build and run. I checked using `ldd` that I am right about the run time environment. INSTALL.md: Requirement of Boost libraries version up to date. projectfiles/VC12/README.md: Requirement of Boost libraries up to date, only the statement of which one is the minimum version, not the rest of the build guide for Boost as requirement. .gitignore: Add KDevelop backup documents.
211 lines
7.7 KiB
Markdown
211 lines
7.7 KiB
Markdown
## 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`
|