README.linux 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. This readme covers VCMI compilation on Unix-like systems.
  2. To run the game you will need:
  3. 1) Heroes 3 data files (SoD or Complete editions);
  4. 2) VCMI data pack (http://download.vcmi.eu/core.zip)
  5. All of them can be installed manually or using vcmibuilder script
  6. For complete installation instructions see VCMI wiki:
  7. http://wiki.vcmi.eu/index.php?title=Installation_on_Linux#Preparing_data
  8. I. Prerequisites
  9. To compile, the following packages (and their development counterparts) are needed to build:
  10. * libstdc++ devel
  11. * CMake build system
  12. * SDL and SDL-devel
  13. * SDL_mixer and SDL_mixer-devel
  14. * SDL_image and SDL_image-devel
  15. * SDL_ttf and SDL_ttf-devel
  16. * zlib and zlib-devel
  17. * (optional) Qt 5, widget and network modules
  18. * the ffmpeg libraries (libavformat and libswscale). Their name could be libavformat-devel and libswscale-devel, or ffmpeg-libs-devel or similar names.
  19. * boost c++ libraries v1.50+ (www.boost.org):
  20. - program-options
  21. - filesystem
  22. - system
  23. - thread
  24. - locale
  25. On Debian-based systems (e.g. Ubuntu) run:
  26. 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
  27. On RPM-based distributions (e.g. Fedora) run:
  28. 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
  29. On Arch-based distributions, there is a development package available for VCMI on the AUR. It can be found at:
  30. https://aur.archlinux.org/packages/vcmi-git/
  31. Information about building packages from the Arch User Repository (AUR) can be
  32. found at the Arch wiki.
  33. II. Getting the sources
  34. VCMI is still in development. We recommend the following initial directory structure:
  35. trunk
  36. trunk/vcmi -> contains sources and is under git control
  37. trunk/build -> contains build output, makefiles, object files,...
  38. You can get latest sources with subversion:
  39. git clone https://github.com/vcmi/vcmi.git
  40. III. Compilation
  41. Run configure:
  42. mkdir build && cd build
  43. cmake ../vcmi <any other options, see below>
  44. Additional options that you may want to use:
  45. To enable debugging: -DCMAKE_BUILD_TYPE=Debug
  46. To change installation directory: -DCMAKE_INSTALL_PREFIX=$absolute_path_to_directory
  47. Notice:
  48. The ../vcmi/ is not a typo, it will place makefile scripts into the build dir
  49. as the build dir is your working dir when calling CMake.
  50. Then build vcmi:
  51. make -j2 (j2 = compile with 2 threads, you can specify any value)
  52. That will generate vcmiclient, vcmiserver, vcmilauncher as well as 3 .so libraries.
  53. III. Installing binaries
  54. 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"
  55. If you're compiling vcmi for development puposes, the easiest is to use cmake prefix and then make install:
  56. # mkdir .../trunk/install
  57. # cmake -DCMAKE_INSTALL_PREFIX=.../trunk/install ../vcmi
  58. # make && make install
  59. # .../trunk/install/bin/vcmiclient
  60. it's better to use links instead.
  61. Go to /BIN_PATH/, and type:
  62. ln -s .../trunk/build/client/vcmiclient
  63. ln -s .../trunk/build/server/vcmiserver
  64. ln -s .../trunk/build/launcher/vcmilauncher
  65. Go to /LIB_PATH/vcmi, and type:
  66. ln -s .../trunk/build/lib/libvcmi.so libvcmi.so
  67. Go to /LIB_PATH/vcmi/AI, and type:
  68. ln -s .../trunk/build/AI/VCAI/VCAI.so
  69. ln -s .../trunk/build/AI/StupidAI/StupidAI.so
  70. ln -s .../trunk/build/AI/BattleAI/BattleAI.so
  71. Go to /DATA_PATH/vcmi, and type:
  72. ln -s .../trunk/source/config
  73. ln -s .../trunk/source/Mods
  74. IV. Compiling documentation
  75. To compile using Doxygen, the UseDoxygen CMake module must be installed. It can
  76. be fetched from: http://tobias.rautenkranz.ch/cmake/doxygen/
  77. Once UseDoxygen is installed, run:
  78. cmake .
  79. make doc
  80. The built documentation will be available from ./doc