Difference between revisions of "How to build VCMI (Windows/Vcpkg)"

From VCMI Project Wiki
Jump to: navigation, search
m (Generate solution for VCMI)
Line 55: Line 55:
 
=== Clone vcpkg ===
 
=== Clone vcpkg ===
  
* open SourceTree
+
# open SourceTree
* File -> Clone
+
# File -> Clone
* select '''https://github.com/microsoft/vcpkg/''' as source
+
# select '''https://github.com/microsoft/vcpkg/''' as source
* select '''[VCMI_DIR]/vcpkg''' as destination
+
# select '''[VCMI_DIR]/vcpkg''' as destination
* click '''Clone'''
+
# click '''Clone'''
  
 
From command line use:
 
From command line use:
Line 85: Line 85:
  
 
== Clone VCMI ==
 
== Clone VCMI ==
* open SourceTree
+
# open SourceTree
* File -> Clone
+
# File -> Clone
* select '''https://github.com/vcmi/vcmi/''' as source
+
# select '''https://github.com/vcmi/vcmi/''' as source
* select '''[VCMI_DIR]/source''' as destination
+
# select '''[VCMI_DIR]/source''' as destination
* click '''Clone'''
+
# click '''Clone'''
  
 
From command line use:
 
From command line use:
Line 97: Line 97:
  
 
== Generate solution for VCMI ==
 
== Generate solution for VCMI ==
* create '''[VCMI_DIR]/build'''
+
# create '''[VCMI_DIR]/build''' folder
* open '''[VCMI_DIR]/build''' in terminal
+
# open '''[VCMI_DIR]/build''' in command line:
* execute command to generate project for:
+
## Run Command Prompt or Power Shell.
 +
## Execute: cd [VCMI_DIR]/build
 +
# execute one of following commands to generate project
  
 
'''Visual Studio 2015 - 32-bit build'''
 
'''Visual Studio 2015 - 32-bit build'''
Line 122: Line 124:
  
 
== Compile VCMI with Visual Studio ==
 
== Compile VCMI with Visual Studio ==
* open '''[VCMI_DIR]/build/VCMI.sln''' in Visual Studio
+
# open '''[VCMI_DIR]/build/VCMI.sln''' in Visual Studio
* select "Release" build type in combobox
+
# select "Release" build type in combobox
* right click on '''BUILD_ALL''' project - build project
+
# right click on '''BUILD_ALL''' project - build project
* grab VCMI in '''[VCMI_DIR]/build/bin''' folder!
+
# grab VCMI in '''[VCMI_DIR]/build/bin''' folder!
  
 
== Compile VCMI from command line ==
 
== Compile VCMI from command line ==
From '''[VCMI_DIR]/build''' execute followding commands.
 
  
 
'''For release build'''
 
'''For release build'''
 
<pre>
 
<pre>
cmake --build . --config Release
+
cmake --build [VCMI_DIR]/build --config Release
 
</pre>
 
</pre>
  
 
'''For debug build'''
 
'''For debug build'''
 
<pre>
 
<pre>
cmake --build . --config Debug
+
cmake --build [VCMI_DIR]/build --config Debug
 
</pre>
 
</pre>
 
Debug will be used by default even "--config" if not specified.
 
Debug will be used by default even "--config" if not specified.
Line 144: Line 145:
 
Make sure NSIS is installed to default directory or have registry entry so CMake can find it.
 
Make sure NSIS is installed to default directory or have registry entry so CMake can find it.
  
After you build VCMI execute following command from [VCMI_DIR]/build.  
+
After you build VCMI execute following commands from '''[VCMI_DIR]/build'''.
 
=== Execute following if you build for Release: ===
 
=== Execute following if you build for Release: ===
 
<pre>
 
<pre>

Revision as of 08:49, 5 September 2017

Prerequisites

  • Windows Vista or newer.
  • Microsoft Visual Studio 2015 or 2017
  • Git or git GUI, for example, SourceTree download
  • CMake download
  • To unpack pre-build Vcpkg: 7-zip
  • To create installer: NSIS

Choose directory

Create a directory for VCMI development, eg. C:\VCMI We will call this directory as [VCMI_DIR]

Warning! Replace [VCMI_DIR] with path you chosen in following commands of this instruction.

How to choose good directory

It is recommended to avoid non-ascii characters in the path to your working folders. The folder should not be write-protected by system. Good location:

  • C:\VCMI

Bad locations:

  • C:\Users\Michał\VCMI (non-ascii character)
  • C:\Program Files (x86)\VCMI (write protection)

Install dependencies

You have two options: to use pre-built libraries or build your own. We strongly recommend start with using pre-built ones.

Option A. Use pre-built Vcpkg

So you decide to start using Vcpkg packages pre-built by VCMI team.

Package guaranteed to work since they tested with every commit by AppVeyor

Download and unpack archive

Archives are available from GitHub: https://github.com/vcmi/vcmi-deps-windows/releases

Only download latest version available.

  • vcpkg-export-x86-windows-v140.7z to build for 32-bit
  • vcpkg-export-x64-windows-v140.7z to build for 64-bit

Extract archive by right clicking on it and choosing "7-zip -> Extract Here".

Move dependencies to target directory

Once extracted "vcpkg" directory will appear with "installed" and "scripts" inside it.

Move extracted "vcpkg" directory into your [VCMI_DIR].

Option B. Build Vcpkg on your own

Be aware that building Vcpkg might take a lot of time depend on your CPU model and 10-20GB of disk space.

Create initial directory

Clone vcpkg

  1. open SourceTree
  2. File -> Clone
  3. select https://github.com/microsoft/vcpkg/ as source
  4. select [VCMI_DIR]/vcpkg as destination
  5. click Clone

From command line use:

git clone https://github.com/microsoft/vcpkg.git [VCMI_DIR]/vcpkg

Build vcpkg

  • Run
[VCMI_DIR]/vcpkg/bootstrap-vcpkg.bat

Build dependencies

  • For 32-bit build run:
[VCMI_DIR]/vcpkg/vcpkg.exe install minizip:x86-windows sdl2:x86-windows sdl2-image:x86-windows sdl2-ttf:x86-windows sdl2-mixer:x86-windows boost:x86-windows qt5:x86-windows ffmpeg:x86-windows fuzzylite:x86-windows
  • For 64-bit build run
[VCMI_DIR]/vcpkg/vcpkg.exe install minizip:x64-windows sdl2:x64-windows sdl2-image:x64-windows sdl2-ttf:x64-windows sdl2-mixer:x64-windows boost:x64-windows qt5:x64-windows ffmpeg:x64-windows fuzzylite:x64-windows

Build VCMI

Clone VCMI

  1. open SourceTree
  2. File -> Clone
  3. select https://github.com/vcmi/vcmi/ as source
  4. select [VCMI_DIR]/source as destination
  5. click Clone

From command line use:

git clone --recursive https://github.com/vcmi/vcmi.git [VCMI_DIR]/source

Generate solution for VCMI

  1. create [VCMI_DIR]/build folder
  2. open [VCMI_DIR]/build in command line:
    1. Run Command Prompt or Power Shell.
    2. Execute: cd [VCMI_DIR]/build
  3. execute one of following commands to generate project

Visual Studio 2015 - 32-bit build

cmake [VCMI_DIR]/source -DCMAKE_TOOLCHAIN_FILE=[VCMI_DIR]/vcpkg/scripts/buildsystems/vcpkg.cmake -G "Visual Studio 14 2015"

Visual Studio 2015 - 64-bit build

cmake [VCMI_DIR]/source -DCMAKE_TOOLCHAIN_FILE=[VCMI_DIR]/vcpkg/scripts/buildsystems/vcpkg.cmake -G "Visual Studio 14 2015 Win64"

Visual Studio 2017 - 32-bit build

cmake [VCMI_DIR]/source -DCMAKE_TOOLCHAIN_FILE=[VCMI_DIR]/vcpkg/scripts/buildsystems/vcpkg.cmake -G "Visual Studio 15 2017"

Visual Studio 2017 - 64-bit build

cmake [VCMI_DIR]/source -DCMAKE_TOOLCHAIN_FILE=[VCMI_DIR]/vcpkg/scripts/buildsystems/vcpkg.cmake -G "Visual Studio 15 2017 Win64"

Compile VCMI with Visual Studio

  1. open [VCMI_DIR]/build/VCMI.sln in Visual Studio
  2. select "Release" build type in combobox
  3. right click on BUILD_ALL project - build project
  4. grab VCMI in [VCMI_DIR]/build/bin folder!

Compile VCMI from command line

For release build

cmake --build [VCMI_DIR]/build --config Release

For debug build

cmake --build [VCMI_DIR]/build --config Debug

Debug will be used by default even "--config" if not specified.

Create VCMI installer

Make sure NSIS is installed to default directory or have registry entry so CMake can find it.

After you build VCMI execute following commands from [VCMI_DIR]/build.

Execute following if you build for Release:

cpack

If you want debug build:

cpack -C Debug