2012-05-02 15:27:19 +00:00
This readme covers VCMI compilation on Unix-like systems.
2012-04-06 16:04:41 +00:00
2012-06-27 20:44:01 +00:00
To run the game you will need:
1) Heroes 3 data files (SoD or Complete editions);
2012-10-02 14:22:58 +00:00
2) VCMI data pack (http://download.vcmi.eu/core.zip)
2012-12-20 13:57:29 +00:00
All of them can be installed manually or using vcmibuilder script
2009-05-08 04:20:23 +00:00
2012-06-27 20:44:01 +00:00
For complete installation instructions see VCMI wiki:
http://wiki.vcmi.eu/index.php?title=Installation_on_Linux#Preparing_data
2009-05-08 04:20:23 +00:00
2012-05-02 15:27:19 +00:00
I. Prerequisites
2009-05-08 04:20:23 +00:00
2013-09-04 23:00:51 +00:00
To compile, the following packages (and their development counterparts) are needed to build:
2012-10-02 14:22:58 +00:00
* libstdc++ devel
* CMake build system
2009-06-27 12:56:21 +00:00
* SDL and SDL-devel
* SDL_mixer and SDL_mixer-devel
* SDL_image and SDL_image-devel
* SDL_ttf and SDL_ttf-devel
* zlib and zlib-devel
2013-09-04 23:00:51 +00:00
* (optional) Qt 5, widget and network modules
2009-06-27 12:56:21 +00:00
* the ffmpeg libraries (libavformat and libswscale). Their name could be libavformat-devel and libswscale-devel, or ffmpeg-libs-devel or similar names.
2015-08-30 00:01:57 +03:00
* boost c++ libraries v1.50+ (www.boost.org):
2011-02-28 15:14:26 +00:00
- program-options
2010-10-18 15:08:59 +00:00
- filesystem
- system
- thread
2013-10-25 21:45:14 +00:00
- locale
2009-05-08 04:20:23 +00:00
2012-05-02 15:27:19 +00:00
On Debian-based systems (e.g. Ubuntu) run:
2016-04-27 14:32:43 +02:00
sudo apt-get install cmake g++ libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev libsdl2-mixer-dev zlib1g-dev libavformat-dev libswscale-dev libboost-dev libboost-filesystem-dev libboost-system-dev libboost-thread-dev libboost-program-options-dev libboost-locale-dev libboost-test-dev qtbase5-dev
2009-08-15 02:23:04 +00:00
2012-06-11 18:45:57 +00:00
On RPM-based distributions (e.g. Fedora) run:
2014-12-25 16:14:03 +01:00
sudo yum install cmake gcc-c++ SDL2-devel SDL2_image-devel SDL2_ttf-devel SDL2_mixer-devel boost boost-devel boost-filesystem boost-system boost-thread boost-program-options boost-locale zlib-devel ffmpeg-devel ffmpeg-libs qt5-qtbase-devel
2012-04-06 16:04:41 +00:00
2015-08-23 22:30:04 -04:00
On Arch-based distributions, there is a development package available for VCMI on the AUR. It can be found at:
https://aur.archlinux.org/packages/vcmi-git/
Information about building packages from the Arch User Repository (AUR) can be
found at the Arch wiki.
2012-05-02 15:27:19 +00:00
II. Getting the sources
VCMI is still in development. We recommend the following initial directory structure:
trunk
2014-07-31 11:54:47 +02:00
trunk/vcmi -> contains sources and is under git control
2012-05-02 15:27:19 +00:00
trunk/build -> contains build output, makefiles, object files,...
You can get latest sources with subversion:
2014-07-31 11:54:47 +02:00
git clone https://github.com/vcmi/vcmi.git
2012-04-06 16:04:41 +00:00
2012-05-02 15:27:19 +00:00
III. Compilation
2012-04-06 16:04:41 +00:00
2012-05-02 15:27:19 +00:00
Run configure:
2012-10-22 16:32:27 +00:00
mkdir build && cd build
2014-07-31 11:54:47 +02:00
cmake ../vcmi <any other options, see below>
2013-09-04 23:00:51 +00:00
Additional options that you may want to use:
To enable debugging: -DCMAKE_BUILD_TYPE=Debug
2014-07-31 11:54:47 +02:00
To change installation directory: -DCMAKE_INSTALL_PREFIX=$absolute_path_to_directory
2012-04-21 10:26:15 +00:00
Notice:
2014-07-31 11:54:47 +02:00
The ../vcmi/ is not a typo, it will place makefile scripts into the build dir
2012-10-02 14:22:58 +00:00
as the build dir is your working dir when calling CMake.
2009-05-16 17:15:21 +00:00
Then build vcmi:
2014-07-31 11:54:47 +02:00
make -j2 (j2 = compile with 2 threads, you can specify any value)
2009-05-08 04:20:23 +00:00
2014-07-31 11:54:47 +02:00
That will generate vcmiclient, vcmiserver, vcmilauncher as well as 3 .so libraries.
2009-05-08 04:20:23 +00:00
2012-05-02 15:27:19 +00:00
III. Installing binaries
2009-10-04 02:02:45 +00:00
2013-09-04 23:00:51 +00:00
To install VCMI you can use "make install" command however generation of distribution-specific packages is usually a better idea. In most cases this can be achieved using tool called "checkinstall"
2011-02-28 15:14:26 +00:00
2014-07-31 11:54:47 +02:00
If you're compiling vcmi for development puposes, the easiest is to use cmake prefix and then make install:
# mkdir .../trunk/install
# cmake -DCMAKE_INSTALL_PREFIX=.../trunk/install ../vcmi
# make && make install
# .../trunk/install/bin/vcmiclient
it's better to use links instead.
2012-12-20 13:57:29 +00:00
Go to /BIN_PATH/, and type:
2009-05-08 04:20:23 +00:00
2012-10-02 14:22:58 +00:00
ln -s .../trunk/build/client/vcmiclient
ln -s .../trunk/build/server/vcmiserver
2013-09-04 23:00:51 +00:00
ln -s .../trunk/build/launcher/vcmilauncher
2012-04-06 16:04:41 +00:00
Go to /LIB_PATH/vcmi, and type:
2012-10-02 14:22:58 +00:00
ln -s .../trunk/build/lib/libvcmi.so libvcmi.so
2012-04-06 16:04:41 +00:00
Go to /LIB_PATH/vcmi/AI, and type:
2012-10-02 14:22:58 +00:00
ln -s .../trunk/build/AI/VCAI/VCAI.so
ln -s .../trunk/build/AI/StupidAI/StupidAI.so
ln -s .../trunk/build/AI/BattleAI/BattleAI.so
2009-05-08 04:20:23 +00:00
2012-04-06 16:04:41 +00:00
Go to /DATA_PATH/vcmi, and type:
2012-10-02 14:22:58 +00:00
ln -s .../trunk/source/config
2012-12-20 13:57:29 +00:00
ln -s .../trunk/source/Mods
2015-08-23 22:23:20 -04:00
IV. Compiling documentation
To compile using Doxygen, the UseDoxygen CMake module must be installed. It can
be fetched from: http://tobias.rautenkranz.ch/cmake/doxygen/
Once UseDoxygen is installed, run:
cmake .
make doc
The built documentation will be available from ./doc